对前端项目打包产物分析入库的好处
对前端项目打包产物分析入库的好处
背景
如果我们前端的项目没有把打包产物监控起来,会存在以下几个问题:
-
哪次commit,把项目体积拉大了,性能又变差了?
- (有些同学可能在开发过程中没关注性能问题,导致后面要优化时,追溯成本变高)
-
哪些文件的缓存会失效?是否符合预期?
-
是否有重复引入的三方依赖?
-
某些资源到底是同步还是异步加载的,是否符合预期?
记录下每次打包产物,可以对产物做一些分析,也可以对各次打包内容之间作对比,会得到很多好处
思路
- 增加一个webpack插件,插件里做的事情是,把打包的结果,通过接口的方式,上传到服务端 保存下来
- 开发一个平台,让这些产物的数据可视化
具体实现细节,最近比较忙,没时间细讲,有兴趣的朋友,可以通过这个思路,自己去尝试
最终能实现哪些好处
我这边就列举几个,更多的应用,可以自己去深入探索
-
记录每次打包的结果,可以记录到以下信息
- 总的打包后的资源Size
- 分析出同步资源和异步资源
- 首屏的js,css总size
- 所有js、css、图片、字体等大小排序(分tab)
-
可选择查看任何两次的SCM打包之间的差异
-
可以分析出重复引用的依赖
- 比如 axios 分别被 a,b,c三个不同的依赖都引用了,可以分析显示出来
-
资源的浏览器缓存是否失效(对比上次打包的文件名可以看出来)
-
还可以把webpack-bundle-analyzer的功能集成进去
码字不易,点赞鼓励
转载自:https://juejin.cn/post/7153053769100427300