加载中...

Terser 是一款 JavaScript 代码压缩(minify)与混淆(mangle)工具,从 uglify-es 分叉而来,解决了 UglifyJS 长期不支持 ES6+ 语法的问题,现已成为 JS 压缩的事实标准之一。
Terser 将源码解析为 AST,在语法树上执行一系列等价变换:删除注释与空白、缩短变量名(mangle)、常量折叠、死代码消除、合并与内联表达式、移除 console 与 debugger(可选)等,再重新生成尽可能短的代码,通常与 gzip/brotli 配合可显著减小传输体积。配合 /*#__PURE__*/ 注释还能辅助 Tree Shaking 判断副作用。
Webpack 5 内置 terser-webpack-plugin 作为生产模式默认压缩器;Rollup、Vite(可选 terser 或 esbuild)等也广泛支持。
esbuild 与 SWC 的压缩速度远超 Terser,但 Terser 的压缩率通常略优、选项更细;对构建时间敏感选前者,对每 KB 都计较的库发布常仍用 Terser。需要注意压缩不是安全手段,混淆后的代码仍可被还原阅读。

登录 后参与讨论
暂无讨论,来发表第一条评论吧