webstorm 安装 prettier 插件后需手动配置才能生效:1. 在 code style 中逐语言执行“set from prettier”;2. actions on save 中禁用两个干扰选项;3. 配置文件须放根目录且命名规范;4. eslint 与 prettier 需分工协作;5. 修改后必须重启或重载项目。

WebStorm 里装了 Prettier 插件 ≠ 自动格式化代码——它默认根本不接管任何格式化行为,所有保存、快捷键、右键菜单都继续走 WebStorm 自带的 JavaScript/TypeScript 格式器。
为什么 Ctrl+Alt+L 没反应?必须 Set from Prettier
WebStorm 的 Ctrl+Alt+L(macOS 是 Cmd+Option+L)默认调用的是 IDE 内置格式器,和 Prettier 插件完全无关。插件只是“提供了能力”,不是“接管了流程”。
- 进
Settings > Editor > Code Style > JavaScript,点右上角齿轮图标 →Set from...→ 选Prettier - 同理,
TypeScript、Vue、JSX、TSX等语言 tab 都要单独执行一遍Set from Prettier - 如果没这一步,哪怕配置文件全对、插件开着、保存勾了,
Ctrl+Alt+L也只会按 WebStorm 默认规则缩进、分号、引号,和你写的.prettierrc.json无关
保存时自动格式化不生效?检查 Actions on Save 三处开关
Settings > Tools > Actions on Save 里的设置是静默失效重灾区,勾了 Reformat code 不等于万事大吉。
- 必须取消勾选下方的
Only if code style errors detected:这个选项一开,就变成“只有报红才格式化”,日常保存基本不触发 - 必须取消勾选
Only if file is physically modified:WebStorm 有时会认为“光标移动不算修改”,直接跳过格式化 - 确认当前文件类型被识别正确:右下角状态栏显示的是
JavaScript还是Plain Text?如果是后者,右键文件 →Override File Type→ 选对类型
.prettierrc.json 不生效?路径、命名、导出方式缺一不可
WebStorm 对配置文件极其挑剔,错一个就 fallback 到内置规则(比如双引号、4空格、结尾分号),看着像“没生效”,其实是根本没读进去。
- 必须放在项目根目录,且和
package.json同级;monorepo 中每个子包都要有自己的.prettierrc.json - 优先用
.prettierrc.json(最稳),.prettierrc(无后缀)次之;prettier.config.js必须写成module.exports = {...},不能用export default -
.prettierignore也得放根目录,每行一个路径,不支持**/test.js,得写成src/*/test.js或tests/**/*.js
ESLint 和 Prettier 一起用,保存时别互相覆盖
同时启用 ESLint 自动修复 + Prettier 保存格式化,会导致“格式化→ESLint 报错→自动修复→再格式化”的无限循环,空行消失、分号反复出现、光标乱跳。
- 在
Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint中,不要勾选Fix problems automatically on save -
.eslintrc.js里加"extends": ["eslint:recommended", "prettier"],并确保"prettier/prettier": "error"在 rules 里 - 把 ESLint 当作纯检查工具,Prettier 专管格式——分工明确才能稳定
最容易被忽略的是:改完所有设置后,WebStorm 不会热更新这些配置,必须重启编辑器或至少执行 File > Reload project from disk,否则缓存可能让一切设置看起来“没用”。











