代码懒加载

ES6 的 import 函数,可以在任意位置异步导入模块,比如在事件中导入。webpack 可以把这些动态导入的模块也进行打包。当事件没有触发,浏览器不会加载模块,触发时加载打包后的模块,从而实现懒加载。 这种方法的缺点是当动态导入的模块比较大时,用户可能会感觉到延迟。

prefetch 、preload

通过在 import 函数中添加魔法注释,实现对模块进行预加载。
prefetch 是在父chunk加载后,浏览器空闲时加载模块;preload 是和父chunk并行加载的。

  1. import(
  2. /* wepbackChunkName: 'utils' */
  3. /* webpackPrefetch: true */
  4. './utils').then(res => {})
  5. import(
  6. /* wepbackChunkName: 'utils' */
  7. /* webpackPreload: true */
  8. './utils').then(res => {})