反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈! 反馈途径·目前大家有任务反馈可以直接发我邮箱:lyfs814@163.com陆续上线高价值工具,敬请期待! 欢迎使用蜗牛工具箱·新工具持续上线中,欢迎收藏关注。如有建议欢迎反馈!
v1.0 · 已上线中英双语纯客户端

JS 压缩JS Minifier

把 JavaScript 一键压缩瘦身、还原美化、校验语法,上线前减小体积、调试脚本更快。字符串 / 模板字符串 / 正则字面量原样保留,换行分号补全规则(ASI)安全,/*! 许可证注释不丢,文件全程不上传。

本周使用—·收藏296·版本v1.0.0·最后更新今天·完全免费
缩进
··字符800
输入UTF-8 · 28 行
输出缩进 2 · UTF-8
// 压缩 / 美化结果会显示在这里…
压缩

工具介绍

3 段详细说明

JS 压缩是面向前端开发者的脚本瘦身工具,集压缩、美化、语法校验三大功能于一体。把上线前的脚本、单文件组件、工具函数粘贴进来,一键折叠空白缩进、移除注释,直接减小文件体积。

所有处理都在浏览器内存中完成,文件不上传任何服务器。基于单遍扫描的自研词法分析器,"字符串"、`模板字符串`(含 ${} 嵌套插值)与/正则字面量/整体识别、原样保留,零依赖、零打包,1 MB 以内处理几乎瞬时(< 100ms)。

JavaScript 的换行参与分号补全规则(ASI),盲目合并换行会改变语义。本工具采用保守压缩策略——只在明确安全的位置跨行合并(; { , ( [ 及运算符之后),} ) ] 等边界一律保留换行,压完的脚本执行结果完全一致。支持 ⌘+↵ 快捷键压缩、一键美化还原阅读、导入导出文件。

基础知识 · JS 压缩规则

ECMAScript Lexical Grammar · 6 条规则

JS 压缩的本质是只删「不执行」的内容。按 ECMAScript 词法规范,以下 6 条规则决定了哪些空白能删、哪些必须保留:

1whitespace空白折叠
行首缩进、行尾空白、连续空格全部删除;let a = 1 → let a=1。这一步通常就能省掉手写代码 15%~30% 的体积。
2ASI guard换行与分号补全(ASI)
JS 的换行参与分号补全:return 后换行会解析成 return;。工具只在 ; { , ( [ ? : . = 运算符 之后合并换行,} ) ] 等边界一律保留换行,跨行合并零语义风险。
3comment注释移除与保留
// 行注释 与 /* 块注释 */ 默认删除(工具栏可关);/*! 或含 @license / @preserve 的法律注释自动保留——版权与来源声明丢不得。
4string & template字符串与模板字符串原样保留
"a; b"、'it\'s' 与 `共 ${a + b} 条` 内部不做任何处理——里面的空格、引号、${} 插值是内容的一部分,动了就变样。
5regex literal正则字面量识别
除号和正则都用 /,工具按前一个 token 判定:= /re/g 是正则、a / b 是除法。字符类 [\w/] 与转义 \/ 都能正确处理,正则内容一个字符不动。
6boundary pair边界拼接保护
删除空白可能让两个 token 拼出新词:a + +b 压成 a++b 就变成自增;return x 压成 returnx 直接报错。工具对 + + - - & & / / ? . 等边界自动补空格,词法零变化。
压缩安全速记
JS 压缩是有损格式、无损执行的瘦身:token 一个不少,只动「不执行」的空白、注释和换行。
不做变量名混淆、不做死代码消除——保守策略下,压完的文件执行结果与源文件 100% 一致。
return\nthrow\nbreak\ncontinue\nyield 等受限产生式之后的换行永远保留,ASI 行为与源文件一致。
"字符串"、`模板${x}` 与 /正则/ 整体成 token 原样保留——里面的分号、括号、空格不会被误当代码处理。
a + +b、a / /re/ 这类相邻符号自动补空格,删除空白不会拼出新 token。
上线后建议叠加 gzip / brotli 传输压缩,JS 体积还能再降 70% 以上——压缩 + 传输双重瘦身。

使用说明

4 步快速入门
1
粘贴 JS
把待处理的 JavaScript 贴到左侧输入框,点击「导入」也可直接选 .js / .mjs / .cjs 文件
2
选选项
顶部工具栏切换「去注释」开关;美化时可选 2 / 4 空格或 Tab 缩进
3
点执行
点击「压缩」或按 ⌘+↵,右侧立即显示结果;也可点「美化」按 ; { } 重排缩进
4
复制 / 导出
点「复制」一键带走,或点「导出」下载 xxx.min.js / xxx.beautified.js 文件

使用场景

5 个真实案例
01上线前瘦身

部署前把内联脚本、落地页 JS 压缩到最小体积,减少首屏阻塞渲染的脚本传输量,Lighthouse 评分肉眼可见提升。

02书签脚本 / 油猴脚本精简

书签栏脚本对 URL 长度敏感,油猴脚本发布前压缩,粘贴、分发、安装都更轻。

03量化优化效果

工具栏实时显示本次压缩的省体积百分比,压缩前后对比一目了然,优化效果可量化。

04压缩代码还原

拿到压成一行的 min.js?点「美化」按 ; { } 重排缩进,代码结构一目了然,方便阅读与排查。

05脚本交付前校验

引号未闭合、模板插值漏 }、正则未闭合会在输出区给出「第 X 行 第 Y 列 + 💡修复建议」,交出去之前先过一遍。

常见问题

10 个问答
JS 压缩是什么?有什么用?

折叠空白缩进、移除注释、在安全处合并换行,把 JS 文件变小且不改变执行结果。也支持反向美化(重排缩进)和语法配对校验。

我的 JS 会上传到服务器吗?

不会。所有解析在浏览器内存中完成,输入内容不上传任何服务器。可断网使用、关闭网络后再打开仍能正常使用。

压缩后代码会变吗?

不会。本工具采用保守压缩策略:只动空白、注释和换行,不做变量名混淆、不改写任何表达式,压完的脚本执行结果与源文件完全一致。

什么是 ASI?为什么换行不能随便删?

ASI(Automatic Semicolon Insertion,分号自动补全)是 JS 的语法规则:某些换行处解析器会自动补分号。例如 return 后紧跟换行会被解析成 return;,盲目把换行删掉会改变语义。本工具只在明确安全的位置(; { , ( [ 及运算符之后)合并换行,其余换行原样保留。

/*! 开头的注释为什么保留了?

/*! 与包含 @license / @preserve 的注释是社区约定的法律注释(版权、来源声明),规范化工具默认保留。普通 // 与 /* 注释 */ 默认删除,工具栏关闭「去注释」后全部保留。

正则字面量会不会被当成除号?

不会。工具根据前一个 token 判断 / 的身份:前面是 ( = ; 等符号或 return、typeof 等关键字时是正则字面量,前面是变量、)、] 时是除号。字符类 [...] 中的 / 与转义的 \/ 都能正确处理。

模板字符串里的 ${} 嵌套支持吗?

支持。`...${...}...` 的插值内部是完整 JS 表达式,工具用栈式扫描逐层配对,嵌套模板、嵌套对象、正则都能正确处理,插值内容原样保留。

支持多大的 JS 文件?

建议 ≤ 5 MB。单遍扫描零依赖,1 MB 以内几乎瞬时(<100ms)。超大文件建议先拆分再处理,避免浏览器渲染卡顿。

错误位置如何定位?

引号 / 模板字符串 / 正则未闭合、块注释未闭合、花括号不配对(缺失 / 多余)时,输出区会给出「第 X 行 第 Y 列 + 出错原因 + 💡修复建议」,输入区自动选中出错字符、红框标出并滚动到位。

与 Terser / esbuild 等构建工具有什么区别?

构建工具功能更多(变量混淆、死代码消除、tree-shaking)但需要安装配置 Node 环境;本工具零安装、打开网页即可用,保守策略保证执行结果零变化,适合临时处理、快速验证和没有构建流程的小页面。

相关工具

开发者分类

数据来源

隐私优先
算法:基于单遍扫描的自研 JavaScript 词法分析器,无任何第三方依赖。完整实现空白折叠、注释剥离、字符串 / 模板字符串(${} 嵌套插值)/ 正则字面量保护、ASI 安全换行合并与花括号配对校验,无 WASM、无 polyfill。
隐私声明:所有解析均在浏览器内存完成,输入内容不上传任何服务器。本工具不记录任何输入、不埋任何分析点。可断网使用,关闭网络后再打开仍能正常使用。