WebStorm中Prettier插件需手动设为默认格式化器并正确配置:在Settings→Editor→Code Style→各语言tab中Set from Prettier;启用Actions on Save的Reformat code且取消干扰选项;.prettierrc.json须置于项目根目录;与ESLint共存时需禁用其格式规则并避免自动修复。

WebStorm 里装了 Prettier 插件 ≠ 保存时自动格式化代码。它默认完全不接管任何格式化行为,Ctrl+S 后代码纹丝不动、Ctrl+Alt+L 按了也无反应,不是插件坏了,而是你还没把它“扶正”——必须手动指定它为默认格式化器,且配置文件得放对位置、名字不能错。
怎么让 Ctrl+Alt+L(或 Cmd+Option+L)走 Prettier?
WebStorm 的快捷键默认调用内置 JavaScript 格式器,和 Prettier 插件毫无关系。不设为默认,就永远不生效。
- 进
Settings > Editor > Code Style > JavaScript,点右上角齿轮图标 →Set from > Prettier - 同理,对
TypeScript、Vue、JSX、TSX等每个语言 tab 都要单独执行一遍Set from Prettier - 检查
Formatter下拉菜单是否真的选中了Prettier,不是IDE Default - 改完别忘了重载项目(File → Reload project)或重启 WebStorm,旧缓存可能卡住设置
为什么保存(Ctrl+S)后没反应?
“Actions on Save” 是独立开关,勾了 Reformat code 还不够,几个干扰选项一开,就等于白设。
- 进
Settings > Tools > Actions on Save - 勾选
Reformat code(不是Run external tool) - 务必取消勾选下方两项:
Only if code style errors detected和Only if file is physically modified - 确认当前文件右下角状态栏显示的是
JavaScript或TypeScript,不是Plain Text;如果是后者,右键文件 →Override File Type→ 选对类型
.prettierrc.json 为什么像没写一样?
WebStorm 对配置文件极其挑剔:路径错、名字错、导出语法错,任一失败就静默 fallback 到内置规则(比如双引号、4空格、结尾分号),根本不会报错提醒你。
- 必须放在项目根目录,且与
package.json同级;monorepo 中每个子包需各自放一份 - 优先用
.prettierrc.json(最稳),.prettierrc(无后缀)次之;prettier.config.js必须写成module.exports = { semi: false },禁用export default和 ES module 语法 -
.prettierignore同样放根目录,每行一个路径,不支持**/node_modules/**这类嵌套通配符,得写成node_modules或src/*/test.js - 确保项目本地安装了
prettier:npm install --save-dev prettier;WebStorm 默认只找node_modules/.bin/prettier,全局安装不可靠
和 ESLint 一起用时,空行消失、光标乱跳?
这不是 Bug,是两者在互相覆盖:Prettier 格式化完,ESLint 又按自己规则修复,再触发 Prettier……循环开始。
- 在
.eslintrc.js或.eslintrc.cjs中,确保已禁用所有格式相关规则:"prettier/prettier": "off",并把eslint-config-prettier加在extends最后一项 - WebStorm 的 ESLint 设置(
Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint)里,勾选Run for files,但不要勾选Fix problems automatically on save - 如果用了
prettier-eslint这类组合工具,WebStorm 不原生支持;想用请改走 husky + lint-staged,别指望快捷键
最容易被忽略的其实是文件类型绑定——你以为开了 TypeScript 就覆盖了 .vue 里的 <script>,其实 Vue 单文件组件的 <template> 是 HTML 类型,Prettier 默认不处理;想格式化它,得额外装 prettier-plugin-vue 并在 WebStorm 的 Prettier 设置里指定插件路径。


















