prettier保存无反应的根本原因是vs code未调用它,必须显式绑定语言、配置触发条件并确保项目依赖存在;缺一不可。

Prettier 插件装了但保存没反应,不是插件坏了,而是 VSCode 根本没让它干活——关键就卡在“谁来格式化”和“让不让它干”这两步上。
editor.formatOnSave 开了但 JS/TS 文件没反应
这个开关只是“允许格式化”,不等于“指定谁来干”。即使全局设了 editor.formatOnSave 为 true,如果当前文件的语言专属设置覆盖了它,照样静默失效。
- 按
Ctrl+Shift+P→Preferences: Open Workspace Settings (JSON),检查有没有类似"[javascript]": { "editor.formatOnSave": false }这种显式关闭项 - 右下角状态栏看语言模式:显示
Plain Text或HTML时,[javascript]规则压根不生效;点它手动切到JavaScript或TypeScript - 更稳妥的写法是在
settings.json里补全语言块:"[javascript]": { "editor.formatOnSave": true }、"[typescript]": { "editor.formatOnSave": true }、"[vue]": { "editor.formatOnSave": true }
右键“Format Document With…”里没有 Prettier
说明 VSCode 没把 esbenp.prettier-vscode 绑定到当前语言,或者插件根本没加载成功。
- 打开设置(
Ctrl+,),搜Default Formatter,分别点开JavaScript › Default Formatter和TypeScript › Default Formatter,下拉选esbenp.prettier-vscode(注意拼写,少一个字母或空格都不行) - Vue/HTML/MDX 等非标准语言 ID 不走默认配置,必须在
settings.json手动加:"[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } - 项目里没装
prettier包也会导致插件初始化失败——运行npm install --save-dev prettier(别只靠全局安装,VSCode 在多环境(nvm/WSL)下常找不到)
.prettierrc 或 prettier.config.js 语法错误导致静默退出
Prettier 遇到配置文件解析失败,不会报错,而是直接放弃加载规则,退回到“什么都不做”状态。你看到的“没反应”,其实是它连配置都没读进去。
- 配置文件必须放在工作区根目录(即你执行
code .打开的那个文件夹),prettier插件默认只向上查找一级 - 用 JSON 格式时,确保末尾没逗号、引号全用双引号、布尔值小写(
true/false);.prettierrc.cjs要能被 Node 正确 require,导出必须是module.exports = { ... } - 空配置文件(如
{})会触发 Prettier 默认规则(semi: true,singleQuote: false),如果团队习惯无分号+单引号,你会觉得“格式化了但不对”,其实是规则没生效
最容易被忽略的是:多根工作区里每个子文件夹都要有独立配置,或者统一放在最外层;改完 .prettierrc.cjs 后不重启 VSCode,插件缓存可能没刷新,格式化依旧按旧规则跑。











