JavaScript 格式化与压缩
美化 JavaScript,或用真正的压缩与变量名混淆缩小体积
本地运行
loading…
关于此工具
用一致的缩进和空格美化 JavaScript——把引入的压缩包展开,读懂它到底在做什么,或整理从控制台粘出来的代码。压缩器是动真格的:Terser 把代码解析成 AST,删除死代码、缩短局部变量名、剥掉注释——和打包器在生产环境用的是同一套引擎。
因为压缩基于 AST,它不会像基于正则的「压缩器」那样弄坏正常代码:字符串、模板字面量、正则和 ASI 边界情况都由真正的解析器处理。语法错误会连同位置一起报告,而不是产出损坏的输出。
Terser 只在你第一次压缩时才加载,保持页面轻量;它完全在你的浏览器中运行——专有源码不会离开你的机器。
常见问题
- 我的代码能变小多少?
- 手写代码在 gzip 之前通常能缩 30–60%:空白、注释和冗长的局部变量名就占了这么多。已经打包过的代码收缩幅度小得多——它经历过同样的变换了。
- 压缩会改变行为吗?
- 压缩与名称混淆保持语义不变:只有局部名称会被重命名,死代码消除只移除可证明不会执行的分支。依赖 Function.prototype.name 或对自身函数做 toString() 的代码是经典例外。
- 能把网站上的生产代码「反压缩」吗?
- 格式化器能恢复空白和结构,让控制流重新可读——但原始变量名和注释永远回不来了,你看到的会是 a、b、c。认真调试的话,优先用网站附带的 source map。
- 支持 TypeScript 或 JSX 吗?
- 不支持——两者各自需要专门的解析器。先编译成 JavaScript(tsc、esbuild),再把产物拿到这里格式化或压缩。