-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
webpack前端代码优化之旅 #7
Comments
步骤 3 中出现一个比较奇怪的bug,最终分析是因为这个写法会把业务代码的样式全部提取出去,所以这里要手动排除一下
|
再说两句 关于引入
|
写得很赞。博主怎么不继续更了 |
起因
最近接手了一个前端项目,由于之前前端开发人员比较多加上没有人很好的来约束管理,到我手上的时候已经变的比较恐怖,这里的恐怖主要指代码臃肿和体积庞大,随便改点东西,热加载都需要8秒左右的时间,在此基础上改需求已经异常难受,优化代码变的刻不容缓。
任务
简单列一下优化任务清单:
DllPlugin
优化开发环境CommonsChunkPlugin
优化生产环境步骤 1
要完成这一步,我们要先分析一下当前代码的第三方组件使用情况,这里我推荐使用
webpack-bundle-analyzer
在
***.prod.js
中添加然后运行编译命令,编译结束后本地会启一个服务并在浏览器中弹出一个页面,页面中就是当前编译后代码的组件使用情况,从中找出没用用且很大的组件,然后从代码中移除或注解
这是个体力活儿,慢慢处理吧
当我完成这这一步的时候,我的项目已经从7mb的容量缩小到了3mb
步骤 2
我们代码已经比最开始清爽了很多,但我发现现在在开发的时候热加载还是4到5秒左右,还是不能忍受,所以我们现在要开始优化开发体验
webpack
的组件dllplugin
可以让你的热加载只编译业务部分,从而来大大提升热加载速度,这里我推荐使用autodll-webpack-plugin
然后在你的
***.dev.js
配置文件中加上完成这一步后这个项目的热加载速度已经降低到了3s以内,已经可以接受了
步骤 3
我们来进行最后一步,优化此项目的线上表现
这里其实有几种思路,比如按需加载,但考虑到一些原因,这次的优化暂时不上按需,只是提取一下公共文件
这里我们要用到
CommonsChunkPlugin
在
***.prodj.js
中总结
通过这3步,我在很短的时间内解决了当下这个项目的几个痛点,但优化的路还很长,而且优化永远是补救措施,更关键的还是从源头解决问题,比如整体团队的能力提升,整体代码质量的把控,都是需要很多精力去搞的事情,让我们一起加油吧
参考
DllPlugin
CommonsChunkPlugin
autodll-webpack-plugin
https://www.erichain.me/2017/07/11/2017-07-11-speeding-up-webpack-with-dllplugin/
creeperyang/blog#37
The text was updated successfully, but these errors were encountered: