使用场景
- webpack可以用来做自动化打包,处理es6转换,图片处理,css样式压缩等等
压缩处理
- js压缩 (减小 JS 文件的大小,加速加载速度)
- uglifyjs-webpack-plugin
- css压缩
optimize-css-assets-webpack-plugin插件
- html文件压缩
- 图片压缩
- 通过url-loader小于
limit一定限制的图片可以转化成base64格式 - 比较大的图片我们可以用
image-webpack-loader来压缩图片
- 通过url-loader小于
减少包的体积
- Tree Shaking
optimization: {
usedExports: true
}
- 代码分割
- 也是在optimizaton属性的splitChunks去配置,
- 也可以使用split-chunks-plugin插件去配置
optimization:{
//帮我们⾃动做代码分割
splitChunks:{
chunks:"all",//默认是⽀持异步,我们使⽤all
}
}
排除无用的 CSS
- purgecss-webpack-plugin插件
预取/预加载模块
(预取/预加载模块)prefetch/preload module
- prefetch(预取):将来某些导航下可能需要的资源
- preload(预加载):当前导航下可能需要资源
prefetch 和 preload
与 prefetch 指令相比,preload 指令有许多不同之处:
- preload chunk 会在父 chunk 加载时,以并行方式开始加载。prefetch chunk 会在父 chunk 加载结束后开始加载。
- preload 是以并行的方式加载,也就说多占了一个请求,对性能、响应时间请求会造成影响过慢
- prefetch是浏览器闲置下载文件
- preload chunk 具有中等优先级,并立即下载。prefetch chunk 在浏览器闲置时下载。
- preload chunk 会在父 chunk 中立即请求,用于当下时刻。prefetch chunk 会用于未来的某个时刻。
- 浏览器支持程度不同。
-
因此一般推荐使用prefetch,而不使用preload
-
webpackChunkName: 在
import里以注释的形式为 chunk 文件取别名: -
webpackPrefetch:也是以注释形式 对文件进行预取