js-beautify:开源 JS / HTML / CSS 代码美化工具

js-beautify 是经典的开源代码美化器,可格式化压缩/混淆过的 JavaScript,并支持 HTML、CSS;提供浏览器、Node.js、Python 与 CDN 多种使用方式。

js-beautify(JS Beautifier)是一款历史悠久、使用广泛的开源代码美化工具。它能重新缩进、排版压缩过的脚本与书签脚本,解包 Dean Edwards Packer 打包结果,并对经 javascript-obfuscator 处理的脚本做部分还原,方便阅读与调试。

说明:该仓库 Releases 不附带安装包 Assets,日常安装请走 npm / pip / CDN,而非 GitHub Release 下载。

能做什么

Python 版主要面向 JavaScript;若要美化 CSS,可另装 cssbeautifier。项目已不再支持 Python 2。

快速开始

浏览器

打开 beautifier.io,在界面里粘贴代码并调整选项即可。

Node.js(CLI / 库)

# 全局 CLI
npm -g install js-beautify
js-beautify foo.js

# 项目依赖
npm install js-beautify

# 预发布 / RC
npm install js-beautify@next

库调用(CommonJS 示例):

var beautify = require('js-beautify/js').js;
console.log(beautify(code, { indent_size: 2, space_in_empty_paren: true }));

ESM:

import beautify from 'js-beautify';
beautify.js(data, options);
beautify.html(data, options);
beautify.css(data, options);

CLI 参数名与库选项对应:CLI 用短横线(如 --indent-size),库侧用下划线(indent_size)。

Python

pip install jsbeautifier
js-beautify file.js
import jsbeautifier
opts = jsbeautifier.default_options()
opts.indent_size = 2
res = jsbeautifier.beautify('some JavaScript', opts)

网页 CDN

可从 cdnjs 引入(版本号按需替换,示例为 2.0.3):

<script src="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/2.0.3/beautify.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/2.0.3/beautify-css.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/2.0.3/beautify-html.min.js"></script>

脚本会暴露 js_beautify、css_beautify、html_beautify。CDN 为免费服务,无 SLA 保障。

常用选项(节选)

方向示例
缩进--indent-size / indent_size(默认 4)、--indent-with-tabs
换行--preserve-newlines、--end-with-newline、--wrap-line-length
风格--brace-style(collapse / expand 等)、--comma-first
括号空格--space-in-paren、--space-in-empty-paren
配置文件--config、.jsbeautifyrc、editorconfig

默认值与完整 CLI 列表见仓库 README。JavaScript 实现还可通过 jsbeautify_ 环境变量或上级目录的 .jsbeautifyrc 加载配置;语言级可覆盖继承设置。

适用场景

若你更需要「保存即格式化」的编辑器体验,可在 VS Code / Cursor 等 IDE 中搭配 Prettier、Biome 等;js-beautify 更偏独立美化器 / 库,尤其擅长处理「已经很难看」的存量代码。

相关链接


本文根据 GitHub 仓库 README 与公开信息整理,仅作介绍与用法备忘;以官方文档为准。