【滴滴】如何压缩前端项目中 JS 的体积
程序源代码
共 1100字,需浏览 3分钟
·
2023-10-17 00:54
![](https://filescdn.proginn.com/d71696a14991fb244bb1d711259c4905/2424b86956fbd25aebdda3973a830cea.webp)
(© Andrea Harrell/Tandem Stills + Motion)
terser[2] 或者 uglify[3],及流行的使用 Rust 编写的swc
压缩混淆化 JS。
-
gzip
或者brotli
压缩,在网关处(nginx)开启 -
使用 webpack-bundle-analyzer
分析打包体积,替换占用较大体积的库,如moment
->dayjs
-
使用支持 Tree-Shaking 的库,对无引用的库或函数进行删除,如 lodash
->lodash/es
-
对无法 Tree Shaking 的库,进行按需引入模块,如使用 import Button from 'antd/lib/Button'
,此处可手写babel-plugin
自动完成,但不推荐 -
使用 babel (css 为 postcss) 时采用 browserlist
,越先进的浏览器所需要的 polyfill 越少,体积更小 -
code spliting,路由懒加载,只加载当前路由的包,按需加载其余的 chunk,首页 JS 体积变小 (PS: 次条不减小总体积,但减小首页体积) -
使用 webpack 的 splitChunksPlugin,把运行时、被引用多次的库进行分包,在分包时要注意避免某一个库被多次引用多次打包。此时分为多个 chunk,虽不能把总体积变小,但可提高加载性能 (PS: 此条不减小总体积,但可提升加载性能)
Reference
Daily Question: https://q.shanyue.tech
[2]terser: https://github.com/terser/terser
[3]uglify: https://github.com/mishoo/UglifyJS
评论
如何检查前端项目中未使用的依赖包?
随着前端项目中使用的依赖包越来越多,而其中一部分依赖包可能并未被项目所使用,手动查找这些依赖包既耗时又繁琐。那么,有没有工具能够快速地帮助我们识别和清理项目中未使用的依赖包呢?下面就来介绍两个用于检查...
前端迷
0
前端项目中写单元测试其实很简单
大厂技术 高级前端 Node进阶点击上方 程序员成长指北,关注公众号回复1,加入高级Node交流群 本文转载于UCloud云通信技术团队一、关于自动化测试1、测试分类自动化测试类型常分为以下三种,各有优缺点:单元测试(Uni
程序员成长指北
1