webstorm的reformat on save需同时开启三项:勾选reformat code、取消only if code style errors detected、确认未勾only if file is physically modified;ctrl+alt+l需手动set from prettier;.prettierrc.json须置于根目录且格式正确;eslint与prettier勿同时自动修复。

Reformat on Save 勾了但没反应?检查这三项开关
WebStorm 的 Reformat code on Save 不是“一勾就灵”,它被三个隐藏开关共同控制。哪怕只错一个,保存时就静默跳过,连报错都没有。
- 必须勾选
Reformat code—— 这是总开关,不勾等于关灯 - 务必取消勾选
Only if code style errors detected—— 一勾上,就变成“只有红波浪线才格式化”,日常保存基本不触发 - 确认没勾
Only if file is physically modified—— WebStorm 有时认为你只是点了下光标、没真改内容,直接跳过格式化
Ctrl+Alt+L 还是走内置格式器?必须 Set from Prettier
装插件 ≠ 接管格式化。Ctrl+Alt+L 默认调用 WebStorm 自带的 JavaScript 格式器,和 Prettier 完全无关。想让它走 Prettier 规则,得手动“扶正”。
- 进
Settings > Editor > Code Style > JavaScript(或TypeScript、JSON、HTML) - 点右上角齿轮图标 →
Set from > Prettier -
.vue文件要分两块设:<script></script>归 JavaScript/TypeScript,<template></template>归 HTML,两个 tab 都得单独操作
.prettierrc 没生效?路径、命名、导出三者缺一不可
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 报错→自动修复→再格式化”的无限循环:空行消失、分号反复出现、光标乱跳。
- 推荐方案:只开
Reformat code on Save(走 Prettier),ESLint 仅作检查提示,不自动修复 - 若必须用 ESLint 自动修复,就在
.eslintrc.js中加extends: ["eslint:recommended", "prettier"],并确保"prettier/prettier": "error",同时禁用所有格式类规则 - 绝对不要在
Actions on Save里勾Run eslint --fix—— WebStorm 官方不原生支持,容易出错
.prettierrc.json + npm install --save-dev prettier,而不是某个人的 IDE 设置。团队里有人删了配置文件、或用了全局安装的 Prettier,整个流程就会断在第一步。











