JS格式化压缩 - 在线工具

在线格式化、美化与压缩 JavaScript 代码,可自定义缩进并校验括号配对

使用说明

JS 格式化压缩工具:把压缩或混乱的 JavaScript 一键排版成层次清晰的代码,或压缩成体积更小的一行,适合阅读第三方脚本、整理历史代码与发布前端资源,与站内的 HTML、CSS 格式化工具成套使用。

格式化基于 js-beautify 的官方 Python 移植,能正确处理正则字面量(/ab+c/i 不会被当成分除号)、模板字符串(含 ${} 插值)、箭头函数、class、解构等现代语法;缩进可选 2 或 4 空格,注释与字符串内容原样保留。

压缩基于 jsmin(jsmin.c 的 Python 移植):只删除注释与无意义空白,不改写语法结构,因此不会出现「压缩后代码跑不起来」的情况;/*! 开头的许可证注释会保留。另外提供「仅校验括号配对」,可定位未闭合或错配的括号、字符串、模板与注释。

常见问题

压缩会不会让代码跑不起来?

一般不会。压缩只删除注释与不必要的空白,不改写语法、不重命名变量(不做混淆),因此不会改变执行结果。/*! 开头的许可证注释会保留。如果代码依赖换行做自动分号插入(ASI),压缩后可能出问题(例如 return 后直接换行),建议先格式化再加上分号。

能正确处理正则和模板字符串吗?

可以。格式化会区分正则字面量与除号(如 /ab+c/i 与 a / b),模板字符串中的 ${} 插值与内部空格也会完整保留。压缩时由于所用引擎不识别模板字符串,工具会先把模板整体保护起来、压缩后再原样回填,避免出现 `a b` 被压成 `a b` 这类改变字符串内容的问题。

和混淆(uglify)有什么区别?

压缩只去掉空白与注释,变量名、函数名保持不变,可读性虽差但结构完整,出错也容易定位;混淆会重命名变量、改写结构,体积更小但几乎不可读,也更容易踩坑。本工具做的是安全的压缩,不做混淆。

缩进支持 Tab 吗?

目前支持 2 空格与 4 空格两档(前端最常见的两种约定,Prettier 默认 2 空格)。如需 Tab 缩进,可先格式化后在编辑器中把缩进转换为 Tab。

「仅校验括号配对」能查出什么?

能查出未闭合或多余的圆括号、方括号、花括号,以及错配(如 ( 被 ] 关闭);同时会检查字符串、模板字符串与块注释是否闭合,并给出所在行号。它不做完整的语法检查,想确认语法是否正确请在浏览器控制台或 Node 中执行。

支持 ES6+ 和 TypeScript 吗?

支持 ES6+ 常见语法(箭头函数、class、模板字符串、解构、async/await 等)。TypeScript 的类型标注不在标准 JS 语法内,直接格式化可能不理想,建议先用构建工具把 TS 编译为 JS 后再处理。

同类工具