SplitChunksPlugin
目的
三方引入的依赖包,其实基本不会被改动,其实不需要和业务代码一起打包到一个js文件中。所以业务代码和依赖包可以进行分开,每次打包的时候,用户只需要更新业务代码,依赖包可以从缓存中读取。
配置
1 | // index.js |
针对异步加载依赖包,不配置webpack也会进行代码分割
1 | // index.js |
Prefetching
目的
第三方依赖包进行代码分离,虽然第二次可以从缓存中获取。但对第一次加载却加载多个js文件,影响效率。
所以splitChunks的chunks默认是async,webpack建议我们按需加载。
Preloading/Prefetching: 在网络带宽空闲的时候将按其他资源加载好。
演示代码
1 | // 同步加载 |
查看代码的使用率
1 | 浏览器:ctrl+shift+p ---> show Coverage ---> 左上方圆圈点击为红色 ---> 刷新页面 ---> 查看使用率 |
Prefetching配置
1 | // index.js |
css分离
目的
将css样式从html文件中分离
MiniCssExtractPlugin配置
不支持热更新,所以只要配置生产环境。同时将webpack.common.js的css规则移到development配置下
1 | npm install --save-dev mini-css-extract-plugin |