webpack的性能优化

54 阅读1分钟
跟上技术的迭代(Node, Npm, Yarn)
在尽可能少的模块上引用Loader

使用babel-loader可以使用exclude、include配置项。

node_module往往就不需要使用babel-loader,可以使用exclude排除掉

plugin尽可能精简并确保可靠
  • 开发模式,例如代码压缩等插件可以不使用
  • 插件尽可能使用经过官方性能测试的插件
合理使用resolve

控制resolve.extensions和resolve.mainFiles配置的数量

resolve.alias的使用:略。

DllPlugin搭配DllReferencePlugin使用

前景:
  项目每次打包都需要去分析打包第三方模块,这种行为增加了打包时间。
使用步骤:

  1. 将第三方模块采用库打包的方式单独打包。
  2. 使用插件将打包的js文件放入html文件中。(使用AddAssetHtmlWebpackPlugin插件)

此时可以通过全局变量访问到第三方模块。但是项目打包时依然回去打包node_modules中的文件。而不是使用全局变量。

  1. 在webpack.dll.js文件中使用DllPlugin插件生成mainfest.json映射文件。
  2. 在webpack.common.js文件中使用DllReferencePlugin插件配合mainfest.json文件使用。

此时项目遇到第三模块,会去全局变量中。如果找不到,再去node_modules中找。

总结:
  项目打包时间得到了提升。