webpack打包vue太慢了怎么办?
- 使用
webpack-bundle-analyzer
对项目进行模块分析生成report,查看report后看看哪些模块体积过大,然后针对性优化,比如我项目中引用了常用的UI库element-ui和v-charts等 - 配置webpack的externals ,官方文档的解释:防止将某些import的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖。所以,可以将体积大的库分离出来。
- 然后在main.js中移除相关库的import
- 在index.html模板文件中,添加相关库的cdn引用,如:
- 确保下webpack,npm, node 及主要库版本要新,比如:4.x比3.x提升很多
- loader范围缩小到src项目文件!一些不必要的loader能关就关了吧
- eslint代码校验其实是一个很费时间的一个步奏。可以把eslint的范围缩小到src,且只检查*.js 和 *.vue,生产环境不开启lint,使用pre-commit或者husky在提交前校验。
- happypack多进程进行
- HardSourceWebpackPlugin会将模块编译后进行缓存,第一次之后速度会明显提升