
直接用 VSCode 自带的格式化功能就能搞定 js 代码缩进,不需要装 Beautify 这类老插件——它已停止维护,且和 ESLint/Prettier 冲突频发。
为什么不用 Beautify 插件了
Beautify 插件自 2021 年起不再更新,vscode-beautify 在最新版 VSCode(2026)中常出现以下问题:
-
Format Document命令无响应或报错TypeError: Cannot read property 'beautify' of undefined - 与
Prettier同时启用时,保存时反复格式化、缩进被覆盖 - 对
async/await、可选链?.、模板字面量等现代语法支持差,易折行错误 - 无法识别项目级配置(如
.prettierrc或.editorconfig),纯靠硬编码规则
用 Prettier + VSCode 原生格式化替代
这是当前最稳定、最符合工程实践的组合。Prettier 负责统一风格,VSCode 负责触发执行。
- 安装官方插件
Prettier(作者:Esben Petersen)——不是prettier-vscode(已废弃) - 确保
settings.json中启用:"editor.formatOnSave": true和"editor.defaultFormatter": "esbenp.prettier-vscode" - 项目根目录放
.prettierrc,例如:{ "tabWidth": 2, "useTabs": false, "semi": true, "singleQuote": true } - 右下角状态栏点击
Spaces: 2→ 选Indent Using Spaces并设为2,保证缩进单位一致
遇到缩进不生效?先检查这三处
常见“点了格式化但缩进没变”基本都卡在这几个地方:
-
editor.formatOnSave开了,但files.associations没把.js映射到javascript类型(比如误配成typescript) - 文件顶部有
// @ts-nocheck或/* prettier-ignore */注释,会跳过整段格式化 - 当前工作区启用了
eslint.format作为默认 formatter,而 ESLint 的indent规则未开启或冲突(此时应禁用 ESLint 的格式化能力:"eslint.format.enable": false)
真正麻烦的不是装插件,而是让不同格式化工具别互相打架;只要默认 formatter 明确、缩进单位统一、忽略注释不乱加,js 缩进就几乎不会出问题。











