terser是如何压缩js代码的
js代码压缩整体策略
通过 AST 分析,根据选项配置一些策略,来生成一颗更小体积的 AST 并生成代码。
压缩 AST 的方式
目前前端工程化中使用 terser和 swc进行 JS 代码压缩,他们拥有相同的 API。
常见用以压缩 AST 的几种方案如下:
- 去除多余字符: 空格,换行及注释
1 |
|
- 压缩变量名:变量名,函数名及属性名
1 |
|
- 合并声明以及布尔值简化
1 |
|
- 编译预计算
数学
1 |
|
函数
1 |
|
在 webpack 中开启 js 代码压缩
1 |
|
生产环境会自动压缩 js 代码(会自动使用一些插件,如terser-webpack-plugin)
terser-webpack-plugin
内部封装了 terser 库,用于处理 js 的压缩和混淆,通过 webpack plugin
的方式对代码进行处理
terser是如何压缩js代码的
http://example.com/2022/06/17/terser是如何压缩js代码的/