WebStorm保存时没走Prettier,是因为未设为默认格式化器;需手动在Settings > Editor > Code Style中为JavaScript/TypeScript/Vue等语言分别执行“Set from > Prettier”,并检查Reformat on Save三项设置、文件类型绑定、配置文件路径与格式,以及ESLint冲突问题。

WebStorm 保存时没走 Prettier?先确认它是不是默认格式化器
装插件 ≠ 接管格式化。WebStorm 默认用内置 JavaScript 格式化器,Prettier 插件只是“可用工具”,不设为默认就永远不会被 Ctrl+S 或 Ctrl+Alt+L 调用。
必须手动指定:进入 Settings > Editor > Code Style > JavaScript(或 TypeScript、Vue 等),点右上角齿轮 → Set from > Prettier。同理,HTML、JSON、CSS tab 也得单独设置,不能只设 JavaScript。
常见错误现象:Ctrl+Alt+L 后缩进还是 4 空格、引号没变单引号、分号还在——说明根本没走 Prettier 规则,还在用 WebStorm 自带风格。
Reformat on Save 不生效?检查三项开关和文件类型绑定
勾选 Reformat code on Save 只是第一步,静默失效往往卡在这三处:
- 没取消勾选
Only if code style errors detected:这个选项一开,就变成“只有报红才格式化”,日常保存基本不触发 - 误勾了
Only if file is physically modified:WebStorm 认为“你只是光标动了”,跳过格式化 -
.ts文件没绑定到 Prettier:在Settings > Editor > File Types里,.ts可能被识别为TypeScript类型,但 Prettier 格式化器只绑在JavaScript类型上——结果就是Ctrl+S没反应
Vue 单文件组件要特别注意:<script> 块归 JavaScript 类型,<template> 归 HTML 类型,两个都得在各自 Code Style 页设成 Prettier。
.prettierrc 配置文件不生效?路径、命名、导出方式全要对
WebStorm 只认特定组合,错一个就 fallback 到默认规则(比如双引号、4 空格缩进),看着像“没生效”。
必须满足:
- 配置文件放在项目根目录,且和
package.json同级;monorepo 下每个子包都要有自己的.prettierrc.json - 优先用
.prettierrc.json(最稳),.prettierrc(无后缀)次之;prettier.config.js必须用module.exports = {},不能用export default -
.prettierignore也得放根目录,每行一个路径,不支持**/test.js这种嵌套通配符,得写成src/*/test.js
旧版 WebStorm(2022.1 之前)对 prettier.config.mjs 识别不稳定,建议统一用 cjs 或 json 格式。
ESLint 和 Prettier 一起用,保存时别互相覆盖
同时开 ESLint 自动修复 + Prettier 格式化,会出现“格式化→ESLint 报错→自动修复→再格式化”的无限循环,光标乱跳、空行消失、分号反复出现。
推荐方案:
- 关掉 ESLint 自动修复:进
Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint,不要勾选Fix problems automatically on - 如果必须用 ESLint 修复,确保
.eslintrc.js中已禁用所有格式规则:"prettier/prettier": "off",并把eslint-config-prettier放在extends最后一项 - 别在
Actions on Save里额外勾选Run eslint --fix—— WebStorm 官方不原生支持该动作
团队协作时,真正起效的是 .prettierrc.json 提交到 Git,而不是 IDE 设置。禁止提交 .idea/prettier.xml,那是私有配置,不同人系统路径、Node 版本都可能不同。


















