Prettier在WebStorm中不自动格式化,是因为未设为默认格式化器;需检查Reformat on Save的三项设置、快捷键绑定、配置文件路径与格式,以及ESLint冲突问题。

Prettier 在 WebStorm 里不自动格式化,不是插件没装好,而是它根本没被设为默认格式化器——WebStorm 默认用自己那套 JS/TS 风格规则,和 Prettier 完全无关。
Reformat code on Save 勾了但没反应?检查这三处
勾选 Reformat code 只是开关,不是万能钥匙。常见静默失效原因:
- 没取消勾选下方的
Only if code style errors detected—— 这个选项一开,就变成“只有报红才格式化”,日常保存基本不触发 -
Only if file is physically modified被误勾:WebStorm 认为“你只是光标动了、没真改内容”,直接跳过格式化 - 文件类型没绑定:比如
.ts文件在 Settings > Editor > File Types 里被识别为TypeScript类型,但 Prettier 格式化器只绑在JavaScript类型上——结果就是按 Ctrl+S 没反应
为什么 Ctrl+Alt+L 不走 Prettier 规则?必须 Set from Prettier
装插件 ≠ 接管格式化。WebStorm 的 Reformat Code 快捷键(Ctrl+Alt+L)默认调用内置格式器,和 Prettier 无关。
- 进
Settings > Editor > Code Style > JavaScript(或TypeScript),点右上角齿轮 →Set from > Prettier - 同理,
JSON、HTML、CSS等语言 tab 也要单独设置,不能只设 JavaScript - 如果用了
.vue,<script>部分归 JavaScript/TypeScript,<template>归 HTML,两个都得设
Prettier 配置文件不生效?路径、命名、导出方式全要对
WebStorm 只认特定组合,错一个就 fallback 到默认规则(比如双引号、4空格缩进),看着像“没生效”。
- 优先用
.prettierrc.json(最稳),.prettierrc(无后缀)次之;prettier.config.js必须用module.exports = {...},不能用export default - 配置文件必须放在项目根目录,且和
package.json同级;多根工作区(monorepo)每个子包都要有自己的.prettierrc.json -
.prettierignore也得放根目录,每行一个路径,不支持**/test.js这种嵌套通配符,得写成src/*/test.js
ESLint 和 Prettier 一起用,保存时别让它们互相覆盖
同时开 ESLint Fix 和 Prettier Reformat,会出现“格式化→ESLint 报错→自动修复→再格式化”的无限循环,光标乱跳、空行消失、分号反复出现。
- 推荐方案:关掉 ESLint 自动修复,在
Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint里,不要勾选Fix problems automatically on - ESLint 只做逻辑检查,Prettier 专管格式。在
.eslintrc.js中加"extends": ["eslint:recommended", "prettier"],并确保"prettier/prettier": "error"开启 - 别在
Actions on Save里额外勾Run eslint --fix—— WebStorm 不原生支持这个动作,强行加会不可控
真正起效的从来不是 IDE 设置,而是项目根目录的 .prettierrc.json 和本地安装的 prettier 包。团队里有人删了 .prettierrc.json 或改成 prettier.config.cjs,其他人立刻格式不一致——这种细节最容易被忽略,也最难排查。


















