LFUnminify,由 Ludovic Frank 开发的在线代码反压缩工具

在线展开压缩代码,美化代码排版

粘贴压缩后的 JavaScript、CSS、HTML、XML 或 JSON,即可得到清晰易读、缩进规范的代码。免费、即时,所有处理均在浏览器中完成。

展开并美化后的代码将显示在这里

按具体格式展开代码

每种格式都有独立页面,介绍该语言值得关注的细节:

什么是代码压缩?

开发者编写代码时,也要考虑其他开发者的阅读体验。因此,代码中会有注释、缩进、代码块之间的空行,以及能说明用途的变量名。这些内容方便人阅读,对浏览器却没有帮助。代码压缩是构建过程中的一个步骤,用于去除机器不需要的内容:空白、换行、注释,以及经常被改成单个字母的原始变量名和函数名。程序的行为完全不变,改变的只是代码的表现形式。

这样做确实能带来收益。压缩后的 JavaScript 包通常比源文件小 30% 到 70%,意味着网络传输的数据更少、首次渲染更快,Core Web Vitals 指标也更好。因此,几乎所有生产网站都会提供压缩后的 JS、CSS 和 HTML。代价是,从线上网站下载的文件往往只有密密麻麻的一行,几乎无法阅读。当您需要理解文件、排查错误或审查它实际执行的操作时,首先就需要展开压缩代码。

这个代码反压缩工具能做什么?

LFUnminify 为压缩代码重新整理出可读的结构。它恢复缩进,让每条语句独占一行,调整代码块和运算符之间的空白,并根据检测到的语言应用统一的排版规则。一行四千个字符的打包代码,可以变成数百行层次分明的代码,便于浏览、搜索和理解。

工具在您的浏览器中直接运行 Prettier,也就是大多数 JavaScript 团队已经在使用的格式化工具。因此,输出结果与您在编辑器中格式化普通源文件时相似,风格自然熟悉。语言检测会自动完成:粘贴代码后,工具会判断它是 JavaScript、CSS、HTML、XML 还是 JSON,再按对应格式处理。

有一个限制需要事先说明:展开压缩代码不等于反编译。注释、原始变量名和开发者备注在构建时就已被删除,任何工具都无法凭空恢复。您得到的是结构清晰、便于阅读和查找的代码,压缩工具生成的短名称仍会保留。实际使用中,这通常已经足够追踪逻辑、定位函数,或查明脚本向哪里发送了什么数据。

支持的代码格式

一个编辑器,支持五种语言。LFUnminify 会读取粘贴的内容,识别语言,再交给适合该语法的解析器处理。无需在菜单中手动选择格式,即使文件扩展名有误,也能根据内容正确处理:

  • JavaScript,支持 ES6 及后续版本语法、模块、异步代码和 JSX。常见用途包括处理 webpack、Vite、esbuild 或 Terser 生成的打包文件。
  • CSS,支持现代语法、自定义属性、媒体查询和嵌套规则。适合查看 Tailwind、Sass 或 PostCSS 编译生成的样式表。
  • HTML,内嵌的 script 和 style 代码块会与标记一起格式化,不会继续挤在一行中。
  • XML,包括站点地图、RSS 订阅源、SVG 文件、SOAP 消息和没有任何换行的配置文件。
  • JSON,包括深层嵌套的 API 响应、软件包清单、配置文件和日志数据。

什么时候需要展开压缩代码?

展开代码通常不是出于好奇,而是为了尽快解决一个具体问题。代码可能是别人写的,也可能是自己写的,却已经无法直接阅读:

  • 排查生产环境错误。堆栈跟踪指向打包文件的第 1 行、第 24815 列。格式化后,文件有了清晰的行号,便于查找真正抛出异常的函数。
  • 审查第三方脚本。在网站中加入统计代码、聊天组件或推广脚本之前,先展开代码,看看它收集哪些信息、连接哪些域名,以及向浏览器存储中写入什么。
  • 阅读编译后的样式表。工具类框架会生成庞大的单行 CSS 文件。美化后,您可以看清层叠关系,找到最终生效的规则,理解为什么自己的覆盖样式没有起作用。
  • 检查 API 响应。从网络面板复制的 JSON 数据在格式化之前往往难以阅读。美化后,只需几秒就能看清结构、嵌套关系和缺失的字段。
  • 从真实代码中学习。阅读优秀代码库实际解决问题的方式,是快速提升能力的途径,而格式化后的文件才便于仔细阅读。

如何使用 LFUnminify

您可以通过三种方式输入代码:直接粘贴到左侧面板,点击“打开文件”导入本机文件,或将文件拖放到输入区。要检查线上网站提供的资源,可以通过浏览器的 view-source 或开发者工具打开资源,复制并粘贴到这里;也可以保存 .js、.css、.html、.xml 或 .json 文件,再通过“打开文件”导入。

格式化会自动开始,无需寻找执行按钮。工具会等您停止输入后识别语言,然后在右侧面板显示带有语法高亮的美化结果。您可以一键复制全部输出到剪贴板,也可以下载为名称合适的文件,再用自己的编辑器打开。

处理长文件时,有两个实用技巧。需要标注准确位置或对比两个版本时,可以开启行号,这项偏好会保留到下次访问。如果检测到的格式与预期不同,它本身也可能是一条线索:原本以为是 JSON,却被识别为 JavaScript 的内容,往往是 JSONP 响应,或包在赋值语句中的配置。

您的代码始终留在本机

这一点需要明确说明:格式化完全在您的浏览器本地进行,使用的是随页面一次性加载的 JavaScript。代码不会上传,不会在服务器上排队,不会写入数据库,也不会记入日志。页面加载完成后,即使断开网络,反压缩工具仍能继续工作,这就是没有数据发送出去的最直接证明。

因此,您可以放心粘贴专有代码、内部打包文件、客户项目,或不希望公开结构的配置文件。无论粘贴还是打开文件,内容都不会离开浏览器。工具也不会代您抓取文件,所以我们的服务器不知道您在查看什么代码或网站。无需创建账户,也不会追踪您粘贴的内容。

LFUnminify 为什么免费?

LFUnminify 是 Ludovic Frank 开发的一系列免费工具之一,其他工具还包括密码生成器、网站图标生成器和配色工具等。理由很简单:开发者每周都会用上几次的小工具,不应该要求注册、堆满广告或限制额度。这里没有账户要求,没有配额限制,也不会在产品中推销付费升级。

这些工具也是实际运行的作品展示。每一个都是真实的应用,采用与客户项目相同的方式开发和维护,比作品集页面更能说明我们的工作方式。如果您需要定制网站开发、真正适合业务的应用而非套用模板,或需要技术咨询,可以通过页脚链接联系我们。

常见问题

能从压缩文件中恢复原始源代码吗?

无法完整恢复,请谨慎看待声称可以做到的工具。压缩会永久删除注释,通常还会将变量名改成单个字母,文件中已不再包含这些信息。LFUnminify 可以恢复结构、缩进和换行,让代码重新变得易读、便于查找,但无法重新创造构建时丢弃的名称和注释。如果项目随打包文件发布了 source map,那才是找回真正原始代码的途径。

我的代码会发送到服务器吗?

不会。格式化完全在浏览器中运行,所需的 JavaScript 随页面一起加载。内容不会上传、存储或记录到日志。我们的服务器也不会代您获取任何文件。要检查线上网站的文件,您需要自行复制或保存后在这里打开,整个处理过程只发生在您与浏览器之间。

支持哪些格式?

支持 JavaScript、CSS、HTML、XML 和 JSON。工具根据内容自动识别格式,无需手动选择,每种语言都交给对应的解析器处理。JavaScript 支持 ES 模块和 JSX 等现代语法,CSS 支持自定义属性和嵌套规则,XML 则支持站点地图、RSS 订阅源和 SVG 文件等内容。

有文件大小限制吗?

粘贴内容没有硬性大小限制。不过,处理在您的处理器上进行,而不是在服务器上,因此超大文件需要更长时间。普通笔记本电脑通常可以顺利格式化几兆字节的打包文件。通过“打开文件”或拖放导入的文件也遵循同样的原则,因为它们只在本地读取,不会上传。

反压缩和代码美化有什么区别?

实际使用中,这两个词通常指同一种操作,本工具可以同时完成。反压缩侧重于展开构建时被压缩的文件,美化则是按照统一风格重新排版任意代码,无论是否压缩。LFUnminify 使用 Prettier 处理输入内容,因此也适合整理从未压缩过、只是缩进混乱的代码。

可以处理经过混淆的 JavaScript 吗?

可以格式化,而且这通常是有用的第一步,但格式化不等于反混淆。混淆工具比压缩工具更进一步,会对字符串编码、拆分控制流,并刻意加入无用代码。美化可以整理出便于阅读的结构,帮助您追踪逻辑,但这些刻意设置的干扰仍然存在。