跟上技术的迭代(Node, Npm, Yarn)
在尽可能少的模块上引用Loader
使用babel-loader可以使用exclude、include配置项。
node_module往往就不需要使用babel-loader,可以使用exclude排除掉
plugin尽可能精简并确保可靠
- 开发模式,例如代码压缩等插件可以不使用
- 插件尽可能使用经过官方性能测试的插件
合理使用resolve
控制resolve.extensions和resolve.mainFiles配置的数量
resolve.alias的使用:略。
DllPlugin搭配DllReferencePlugin使用
前景:
项目每次打包都需要去分析打包第三方模块,这种行为增加了打包时间。
使用步骤:
- 将第三方模块采用库打包的方式单独打包。
- 使用插件将打包的js文件放入html文件中。(使用AddAssetHtmlWebpackPlugin插件)
此时可以通过全局变量访问到第三方模块。但是项目打包时依然回去打包node_modules中的文件。而不是使用全局变量。
- 在webpack.dll.js文件中使用DllPlugin插件生成mainfest.json映射文件。
- 在webpack.common.js文件中使用DllReferencePlugin插件配合mainfest.json文件使用。
此时项目遇到第三模块,会去全局变量中。如果找不到,再去node_modules中找。
总结:
项目打包时间得到了提升。