prettier-atom 保存无反应的主因是文件语法类型未识别(如显示 plain text 而非 javascript),需手动设为 javascript (jsx)、确认扩展名在插件 file extensions 列表中(如 js 不带点)、.mjs/.cjs 需 .prettierrc overrides 显式声明;format on save 生效需三者对齐:插件开关开启、editor 的 tab length 和 soft tabs 设置与 .prettierrc 一致、node.js 环境路径正确(推荐插件内填绝对路径);禁用 atom-beautify(防钩子冲突),关闭 linter-eslint 的 fix errors on save,并在 .eslintrc extends 中添加 eslint-config-prettier 且开启 prettier-atom 的 eslint integration;.prettierrc 必须置于项目根目录(package.json 同级),支持 json/yaml/toml 格式,不支持 js;调试须逐项验证语法模式、prettier 运行时、插件冲突,而非仅重启 atom。

prettier-atom 为什么保存没反应?
根本不是插件没装,而是它压根没认出你当前文件该归哪类——比如 .js 文件右下角显示的是 Plain Text 而非 JavaScript,prettier-atom 就直接跳过,连日志都不打。
- 手动点右下角语法名 → 选
JavaScript (JSX)(别只选 JavaScript,JSX 支持更全) - 检查文件扩展名是否在插件设置的
File Extensions列表里:默认是["js", "jsx", "ts", "tsx"],注意别写成.js(带点就失效) - 如果用
.mjs或.cjs,必须在.prettierrc里加overrides显式声明,否则不处理
Format on Save 开了还是不生效?查这三处
开开关只是第一步,真正起作用要靠三者对齐:插件配置、编辑器缩进设置、Node.js 环境路径。缺一不可。
Prettier 是一款"有主见的"代码格式化工具,通过解析代码并按照统一规则重新格式化,强制执行一致的代码风格。支持 JavaScript、TypeScript、CSS、SCSS、HTML、Vue、JSON、Markdown、YAML 等多种语言。可配置为保存时自动格式化。
-
Settings → Packages → prettier-atom → Format on Save必须勾选 -
Settings → Editor → Tab Length设为2(或你项目要求的值),且务必勾选Soft Tabs;否则和.prettierrc里的tabWidth/useTabs冲突,导致缩进错乱 - 在 Atom 控制台(
View → Developer → Toggle Developer Tools → Console)运行require.resolve('prettier'),报错说明插件找不到 Prettier 运行时——全局装了npm install -g prettier也不一定管用,GUI 启动的 Atom 常读不到 shell 的PATH,稳妥做法是在插件设置里填绝对路径,如/usr/local/bin/prettier
和 atom-beautify / linter-eslint 共存会怎样?
不是“能共存”,而是“必然打架”。prettier-atom 和 atom-beautify 都监听 core:save,但只有第一个响应的执行,另一个静默丢弃——你永远不知道哪次保存触发了谁。
- 必须禁用
atom-beautify,尤其它的Beautify on Save选项,和 prettier-atom 的Format on Save冲突率接近 100% - 和
linter-eslint共存时,关掉它的Fix errors on save——否则 ESLint 自动修分号、引号,Prettier 又删分号、换引号,代码来回抖动 - 想让 ESLint 认可 Prettier 规则,得在
.eslintrc的extends末尾加"eslint-config-prettier",且prettier-atom设置里打开ESLint Integration
.prettierrc 放哪才真起作用?
prettier-atom 会从当前文件路径向上找 .prettierrc,但只在项目根目录(即 package.json 所在层)读到的才算数。放在 src/ 或 lib/ 里,等于没写。
- 文件必须叫
.prettierrc(JSON 格式)、.prettierrc.json、.prettierrc.yaml或.prettierrc.toml;.prettierrc.js不支持 - 内容用纯 JSON,例如:
{ "semi": false, "singleQuote": true, "tabWidth": 2 } - 如果项目没配
.prettierrc,插件 fallback 到编辑器的Tab Length和Soft Tabs设置,此时改配置文件不如直接调编辑器参数来得快










