JavaScript压缩工具
粘贴 JavaScript 代码即可获得体积缩小 40%-70% 的压缩版:去除空白字符、将变量缩写为单个字母、移除死分支、折叠常量,并在你启用时清除注释。适用于快速检查文件大小、一次性嵌入,以及无需运行完整构建工具链的着陆页。
如何精简 JavaScript
-
1
粘贴源代码
任何有效的 ES5+ JavaScript 语法均可使用;对于 ES6 及更高版本(模板字面量、类、模块),请确保目标版本与之兼容。
-
2
选择压缩强度
安全模式(仅空白和注释);默认模式(+ 变量名混淆);激进模式(+ 属性名混淆,可能导致 DOM 访问异常)。
-
3
最小化
该工具可执行与Terser兼容的转换,并输出包含处理前/处理后字节数的结果。
-
4
复制或下载
将输出内容粘贴到`<script>`标签中,或另存为`.min.js`格式以便在 CDN 中使用。
字节的去向
典型的压缩文件体积比源文件小40%-70%。若使用gzip(或Cloudflare及大多数CDN采用的Brotli)进行压缩,还可再降低60%-75%。综合来看,一个100KB的源文件经压缩后传输时仅需约15-25KB。
| 源文件 | 压缩后 | +gzip | +Brotli |
|---|---|---|---|
| jQuery 3.6 | 87 KB | 30 KB | 27 KB |
| Lodash 4.17 | 71 KB | 25 KB | 22 KB |
| React + ReactDOM 18 | 140 KB | 44 KB | 39 KB |
应用的技术
| 技术 | 作用 |
|---|---|
| 移除空白 | 去除空格、制表符和换行符 |
| 移除注释 | 删除 // 和 /* */(!important 除外) |
| 变量名混淆 | 将 userName 重命名为 u(作用域安全) |
| 属性名混淆 | 将 obj.foo 重命名为 obj.a(不安全) |
| 常量折叠 | 1 + 2 + 3 → 6 |
| 死代码消除 | 删除 return 之后的分支 |
| 控制流内联 | 内联仅使用一次的小型函数 |
| 字符串字面量压缩 | 合并重复的字符串常量 |
安全模式 vs 攻击模式
- 安全模式保留变量名称,仅去除空白字符;适用于需要可读堆栈跟踪信息的调试场景。
- 默认模式会混淆局部变量,但保留全局变量和属性名称。适用于大多数代码。
- 激进模式会混淆所有内容,包括属性名称。除非配置保留名称,否则该模式通常会导致动态访问属性的代码出错(如
obj["prop"]、Object.keys(obj))。
何时进行压缩,以及何时不应进行
- 请在生产环境中,对浏览器下载的每个资源都进行压缩。
- 请提供源映射文件,以便浏览器的开发者工具在调试时仍能显示原始名称。
- 请勿在开发阶段进行压缩,这会浪费构建时间并导致错误信息难以阅读。
- 请勿对已压缩的代码再次压缩。
.min.js文件在重新压缩时体积仅缩减约 1%-3%,却有破坏代码的风险。
常见错误
- 未配置保留名称。 当
payment_method被错误修改为a时,动态属性访问(obj["payment_method"])功能将失效。 - 忘记源地图。 若缺少
.map文件,生产错误信息将无法读取。 - **同时对CommonJS和 ESM 进行压缩。**混合模块系统在压缩前需仔细执行树结构优化。
常见问题
通常未压缩时文件体积缩小40%-70%,经gzipped或Brotli压缩后进一步缩减60%-75%。一个100 KB的源文件在传输过程中通常仅占用约15-25 KB。
默认(局部变量)混淆几乎总是安全的。激进的属性名混淆会破坏所有动态访问属性的代码。启用前,请仔细配置 reserved 列表。
是的,启用“生成源代码映射”选项后,该工具将返回压缩后的代码及一个.map文件(该文件可将每个字节映射回原始源代码)。请将两者上传至您的 CDN ,以便DevTools显示可读的堆栈跟踪信息。
支持。顶层 await、类字段、私有方法、空值合并(nullish coalescing)、可选链(optional chaining)以及数字分隔符都受支持。对于非常新的提案(如装饰器 stage-3),请查阅相应的具体标志说明。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- Bộ thu nhỏ mã JavaScript [VI]
- JavaScript-Minifier [DE]
- Minificador de JavaScript [PT]
- 자바스크립트 압축기 [KO]
- เครื่องมือลดขนาดโค้ด JavaScript [TH]
- أداة تقليل حجم كود جافا سكريبت [AR]
- JavaScript-minifierare [SV]
- JavaScript-minifier [NL]
- Minificateur JavaScript [FR]
- Minifier JavaScript [ID]
- JavaScript圧縮ツール [JA]
- Minifikator JavaScripta [PL]
- Minificador de JavaScript [ES]
- JavaScript Minifier [EN]
- Minificatore JavaScript [IT]
- Минифайер JavaScript [RU]
- JavaScript Minörü [TR]