在线展开 JavaScript 压缩代码
粘贴压缩后的 .js 文件、webpack 打包文件或单行代码片段,即可在右侧面板得到缩进规范的 JavaScript。Prettier 会在您的浏览器中完成格式化,无需上传任何内容。
为什么 JavaScript 会变得难以阅读
现代构建流程都会在发布前压缩 JavaScript。Terser、esbuild、SWC 等工具会删除空白和注释,将局部变量名和函数名改成单个字母,把嵌套代码块压成链式表达式,并将整个应用合并为一两个文件。一个原本拥有三百个易读源文件的 React 应用,到达浏览器时可能只剩下一行、几百千字节的代码。程序依然正常运行,但一旦需要阅读,眼前就只剩没有结构可循的文字墙。
格式化究竟能恢复什么
美化打包文件,可以恢复便于查找代码的排版。每条语句重新独占一行,原本指向第 1 行、第 24815 列的堆栈位置,也就能对应到便于定位的代码。嵌套层级重新清晰可见,您能看出函数从哪里开始、到哪里结束,条件控制哪个分支,以及一连串回调如何衔接。字符串、URL 和接口名称也更容易浏览,而在审查第三方脚本时,这往往正是您最关心的内容。
支持现代 JavaScript 语法
格式化工具解析的是当前的 JavaScript,而非十年前的语法子集。箭头函数、类、async 和 await、生成器、可选链、空值合并、模板字面量、解构、展开语法、动态导入和 ES 模块都能正确格式化。工具也支持 JSX,在查看尚未转换 JSX 语法的 React 组件时尤其有用。由于底层使用 Prettier,输出遵循的规范与您平时在编辑器中处理源文件时一致。
能力边界在哪里
展开压缩代码并不等于逆向还原。压缩工具已经删除注释并重命名变量,任何格式化工具都无法猜出现在叫 n 的变量原来叫 remainingRetries。如果项目发布了 source map,请在浏览器开发者工具中加载它,这是找回真正原始代码的途径。如果文件经过刻意混淆,而不只是压缩,格式化可以让结构易读,但未必能让代码意图清晰。
常见问题
可以展开 webpack 或 Vite 打包文件吗?
可以。粘贴打包内容,或通过“打开文件”导入,就能像普通 JavaScript 一样格式化。大型包可能需要几秒,因为计算在您的本机完成。整理好缩进后,模块结构也更容易辨认。
能对 JavaScript 反混淆吗?
工具可以格式化混淆代码,让它更容易阅读,但不会解除混淆本身。经过编码的字符串、人为构造的控制流和刻意插入的无用代码都会保留。
格式化会破坏代码吗?
格式化工具会尽量在保持 JavaScript 行为的同时统一代码风格。它可能调整标点、引号和布局,因此结果不会与原文件逐字节相同。请保留原文件并检查输出,在将修改或格式化后的打包文件用于生产环境之前,先运行项目测试。
