怎么实现Webpack打包优化

89 阅读2分钟
  1. 提升开发体验

    • SourceMap:可以让开发或上线时代码报错能够有更加准确的错误提示
  2. 提升打包构建速度

    • HMR:可以在开发环境中只重新编译打包修改了的代码,不变的代码使用缓存,从而使更新速度更快
    • OneOf:使用OneOf包裹loader配置,可以使得资源文件一旦被某个loader处理了,就不会继续遍历下去,使得打包速度更快
    • Include/Exclude:排除或只检测某些文件,处理的文件更少,速度会更快
    • Cache:可以对eslint和babel处理的结果进行缓存,让第二次打包速度更快
    • thread-loader:可以多进程处理loader,提高打包构建速度。对大项目构建速度提高明显,小项目可能还会影响到构建速度
  3. 减少代码体积

    • TreeShaking:可以剔除没有使用的多余代码,让代码体积更小。在Webpack中默认是开启的
    • html-webpack-plugin:Html文件代码压缩
    • css-minimizer-webpack-plugin:CSS代码压缩
    • terser-webpack-plugin:JS代码压缩
    • image-minimizer-webpack-plugin:对静态图片压缩
  4. 提高代码运行性能

    • CodeSplit:避免所有js文件打包到一个文件中,使用CodeSplit分割文件,进行按需加载。通过配置项splitChunks分割代码,通过import动态导入来按需加载
    • Preload/Prefetch:通过Preload告诉浏览器立即加载资源,通过Prefetch告诉浏览器在空闲时才开始加载资源。通过相关plugin使用
    • Network Cache:可以对输出的资源文件进行更好的命名,将来好做缓存,从而提高用户体验
    • Core-js:可以更好处理js兼容问题,专门用于做ES6以及以上API的补丁,就是用社区上提供的一段代码,让我们在不兼容某些新特性的浏览器上,使用该新特性
    • PWA:这是一种使得网页具有类似原生应用体验的技术,具体需要通过Service Workers技术实现。在项目中可通过workbox-webpack-plugin配置实现