免费转换器

JavaScript 压缩工具

在浏览器中即时压缩 JavaScript 代码。删除注释、折叠空白并减小文件大小。免费且私密。

将 JS 文件拖放到此处

支持 .js 文件。或在上方粘贴您的 JavaScript。

关于此工具

JavaScript 缩小通过删除不必要的字符和(使用适当的缩小器)将局部变量重命名为更短的名称来减少源代码的大小。第一类——空白和注释删除——简单且无风险。第二个——变量重命名——需要理解范围规则,这也是像 Terser 和 esbuild 这样的生产压缩器最擅长的。

该工具专注于安全缩小:剥离注释、折叠空白、删除多余的分号以及缩短明显的模式。变量重命名是保守的——只触及明确范围内的局部变量,而不会影响外部引用的名称。结果在功能上与源相同。

对于生产级缩小,专用工具(Terser、esbuild、swc)可以理解完整的 ECMAScript 范围模型并产生明显更小的输出。当完整的构建设置不可用时,此工具可用于快速浏览器端缩小。

为什么要缩小 JavaScript

JavaScript 包通常是现代网页上最大的单一资源。与未缩小的源相比,缩小通常会减少 30-60% 的大小。与 gzip 或 Brotli 结合使用,减少量会有所缩小,但该组合仍然节省了可测量的字节 — 特别是对于连接速度较慢的用户而言。

更快的 JavaScript 也意味着更快的交互时间。较小的脚本下载速度更快,解析速度更快,执行速度也更快。对于 TTI 影响跳出率和 SEO 排名的网站,缩小是最便宜的方法之一。

使用方法

粘贴 JavaScript,获得较小的版本。

  1. 添加 JavaScript 输入: 将源代码粘贴到输入区域或拖放 .js 文件。缩小器接受现代 JavaScript (ES2015+),包括箭头函数、模板文字、类和模块。
  2. 选择选项: 默认情况下会去除注释并折叠空格。局部变量重命名是保守的;如果需要最大压缩,请启用更积极的重命名。
  3. 缩小: 压缩器解析源代码,删除空格和注释,并发出紧凑的输出。源代码中的语法错误会产生清晰的错误消息。
  4. 使用输出: 替换生产中的脚本源。为了实现全面优化,请与处理树抖动和死代码消除的捆绑器配对。

常见用例

技术细节

The minifier tokenizes JavaScript using a parser that respects ECMAScript syntax. Comments (single-line and multi-line) are removed except for license comments marked with /*!前缀。 Whitespace is collapsed except where syntactically required (between identifiers, after keywords).

保守的变量重命名缩短了直接作用域中的局部变量。 Globals, exports, and imported names are not renamed — that would break external references. For deep renaming, use Terser or esbuild with proper module-aware analysis.

边缘情况:自动分号插入(ASI)意味着缩小器必须在某些上下文中保留换行符,以避免更改程序行为。模板文字、正则表达式文字和 JSX(如果输入包含它)会被准确保留,因为它们的内容可能无法安全地压缩。

最佳实践

常见问题

缩小会改变我的代码的工作方式吗?
不会。缩小会删除空格和注释,这不会影响执行。变量缩短(重整)重命名局部变量但保留行为。全局变量和导出的名称保持不变。
我应该减少开发还是生产?
仅在生产中使用精简代码。开发过程中,保留原有的可读代码。大多数构建工具(Webpack、Vite、esbuild)都会在生产构建过程中自动处理缩小。
缩小和混淆有什么区别?
缩小可以减少大小,同时在格式化后保持代码的功能可读性。故意混淆使代码难以理解(字符串编码、控制流扁平化)。该工具侧重于减小尺寸,而不是混淆。
我预计尺寸会减少多少?
通常在 gzip 之前为 30-60%。带有长变量名称的注释良好的代码可以看到最大的减少。结合 gzip 压缩,JavaScript 文件通常比原始源文件小 80-90%。
我的代码是否上传到服务器?
不会。压缩器在您的浏览器中运行。
我的 JavaScript 会小多少?
通常减少 30–60%。具有长标识符的重变量代码压缩得更多;大量表达式的代码压缩较少。
我应该手动缩小吗?
绝不。在源代码中维护可读的 JavaScript。将缩小作为构建步骤或部署的一部分运行。
它可以在 TypeScript 上运行吗?
TypeScript 需要首先使用 tsc 或 esbuild 将其编译为 JavaScript。编译后,生成的 JavaScript 可以被缩小。