装了prettier插件但保存无反应,主因是未配置文件或被其他格式化器抢占控制权;须安装官方插件esbenp.prettier-vscode、本地安装prettier包、使用.prettierrc.json5配置、vs code设置仅保留三行核心配置并禁用冲突插件。

装了插件但保存没反应?大概率是没配对配置或被其他格式化器抢了控制权。Prettier 插件本身不带默认规则,也不自动接管所有文件类型,必须手动绑定、指定配置、关掉冲突项。
认准官方插件 ID:esbenp.prettier-vscode
扩展市场搜“prettier”会出来一堆同名插件,但只有 esbenp.prettier-vscode 是官方维护版本(280 万+ 下载量)。其他插件可能:
- 不支持
prettier.requireConfig配置项 - 读不了
.prettierrc.json5里的注释 - 在
.vue或.tsx文件里解析失败,报Cannot parse unknown language
安装方式:Ctrl+Shift+X → 搜 esbenp.prettier-vscode → Install。装完建议关闭再重开 VS Code,确保状态栏右下角出现 Prettier 字样。
必须本地安装 prettier 包并锁定版本
只装插件不装包,prettier.requireConfig: true 会直接报错 No config file found;更关键的是,CI/CD 和队友执行 npx prettier --write . 时,用的是项目 node_modules 里的版本,不是插件自带的。
- 运行
npm install prettier --save-dev --save-exact(--save-exact保证package.json里写死如"prettier": "3.2.4") - 验证:在项目根目录跑
npx prettier --version,输出必须和package.json里声明的一致 - 别用
npm install -g prettier,全局版本和项目版本不一致时,格式结果可能不同
配置文件必须用 .prettierrc.json5 格式
纯 JSON 写 .prettierrc 容易因多逗号、少引号失效,且不支持注释——协作时别人看不懂为什么设 printWidth: 100。改用 .prettierrc.json5,VS Code 默认识别,还能写说明:
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"printWidth": 100,
// Vue 单文件组件需显式启用 parser
"overrides": [
{
"files": ["*.vue"],
"options": { "parser": "vue" }
}
]
}
注意:VS Code 不会向上查找父目录的配置,子项目要独立规则,就得在该子目录下也放一份 .prettierrc.json5。
VS Code 设置里三行核心就够了
工作区 settings.json 里只需保留这三行,其余全删掉,避免和项目配置打架:
"editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "prettier.requireConfig": true
额外提醒:
- 禁用
Beautify、JS-CSS-HTML Formatter等同类插件,它们会抢editor.formatOnSave控制权 -
.json、.md、.yml这些非 JS/TS 文件默认不走 Prettier,得在settings.json里单独加语言映射,比如"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } - 和 ESLint 共存时,
eslint-config-prettier必须放在.eslintrc.js的extends数组末尾,否则会被前面规则覆盖
最常被忽略的点:prettier.requireConfig: true 开着,但项目里没放配置文件,或者放了却用了不被识别的后缀(比如 .prettierrc.js 在 CI 里跑不起来),这时候格式化直接静默失败,连错误提示都不给。











