-
提升开发体验
SourceMap:可以让开发或上线时代码报错能够有更加准确的错误提示
-
提升打包构建速度
HMR:可以在开发环境中只重新编译打包修改了的代码,不变的代码使用缓存,从而使更新速度更快OneOf:使用OneOf包裹loader配置,可以使得资源文件一旦被某个loader处理了,就不会继续遍历下去,使得打包速度更快Include/Exclude:排除或只检测某些文件,处理的文件更少,速度会更快Cache:可以对eslint和babel处理的结果进行缓存,让第二次打包速度更快thread-loader:可以多进程处理loader,提高打包构建速度。对大项目构建速度提高明显,小项目可能还会影响到构建速度
-
减少代码体积
TreeShaking:可以剔除没有使用的多余代码,让代码体积更小。在Webpack中默认是开启的html-webpack-plugin:Html文件代码压缩css-minimizer-webpack-plugin:CSS代码压缩terser-webpack-plugin:JS代码压缩image-minimizer-webpack-plugin:对静态图片压缩
-
提高代码运行性能
CodeSplit:避免所有js文件打包到一个文件中,使用CodeSplit分割文件,进行按需加载。通过配置项splitChunks分割代码,通过import动态导入来按需加载Preload/Prefetch:通过Preload告诉浏览器立即加载资源,通过Prefetch告诉浏览器在空闲时才开始加载资源。通过相关plugin使用Network Cache:可以对输出的资源文件进行更好的命名,将来好做缓存,从而提高用户体验Core-js:可以更好处理js兼容问题,专门用于做ES6以及以上API的补丁,就是用社区上提供的一段代码,让我们在不兼容某些新特性的浏览器上,使用该新特性PWA:这是一种使得网页具有类似原生应用体验的技术,具体需要通过Service Workers技术实现。在项目中可通过workbox-webpack-plugin配置实现