prettier-atom 是前端项目(尤其 React/Vue)格式化 JavaScript/TypeScript/JSX 最稳选择,开箱即用、默认支持 .js/.ts/.jsx/.tsx/.vue script 块,需手动启用 Format on Save,自动读取 .prettierrc 等配置,不读 package.json 中 prettier 字段。

用 prettier-atom 格式化 JavaScript/TypeScript/JSX 最稳
如果你主要写前端项目(尤其是 React/Vue),prettier-atom 是当前最可靠的选择。它不是“能用”,而是“开箱即用且少出错”。
安装后默认只对 .js、.ts、.jsx、.tsx 和 .vue 中的 <script></script> 块生效,不需要额外配置语言支持。
- 必须手动启用
Format on Save(设置 → Packages →prettier-atom→ 勾选);不勾的话保存=没格式化 - 若项目根目录有
.prettierrc或prettier.config.js,插件会自动读取——但注意:Atom 不读取package.json里的prettier字段 - 常见报错
Prettier not found多半是因为全局没装 Prettier:npm install -g prettier或在项目里装npm install --save-dev prettier - 和
linter-eslint共存时,建议关掉 ESLint 的自动修复(即禁用Fix errors on save),否则两者可能打架
atom-beautify 支持语言多,但配置容易翻车
想格式化 Python、Java、C++、Go、HTML、CSS?atom-beautify 是目前 Atom 中覆盖语言最广的格式化插件,但它依赖外部 CLI 工具,每种语言都要单独配通。
- HTML/CSS/JS 默认可用;Python 需要提前装
python -m pip install beautifultable或配js-beautify+pycodestyle - C/C++/Java 必须装
uncrustify:Windows 下解压后把uncrustify.exe路径加进系统PATH,macOS/Linux 用brew install uncrustify - 它的“Beautify on Save”选项名不副实:实际是“保存时触发一次 beautify”,但不会像
prettier-atom那样尊重项目级配置,容易覆盖团队约定 - 不推荐和
prettier-atom同时启用——两者都监听Save事件,会重复格式化甚至相互覆盖
为什么 linter-eslint 不能替代格式化?
linter-eslint 是校验工具,不是格式化器。它报 semi: expected semi,但不会帮你加;它提示 quotes: Expected singlequote,也不会自动改双引号为单引号。
- 它只做“指出问题”,不做“解决问题”;真要自动修,得配合
eslint --fixCLI 或启用插件的Fix errors on save(但该功能不稳定,尤其在.vue文件中易漏修) - Vue 单文件中 JS 部分要被 lint,必须在
linter-eslint设置里打开Lint HTML Files—— 这个开关默认关闭,90% 的人第一次都会卡在这儿 - 若你已用
prettier-atom,就别让linter-eslint自动修了,否则 Prettier 格式化完,ESLint 又按自己规则反向改一版,代码越修越乱
别忽略 config.cson 对格式化行为的底层干预
Atom 所有插件的行为最终都受 ~/.atom/config.cson 控制,有些关键开关藏在这里,图形界面根本找不到。
- 比如你想让
prettier-atom在保存时跳过某些文件类型,得手动加:"prettier-atom": "formatOnSaveOptions": "excludedGlobs": [ "**/node_modules/**" "**/dist/**" "**/*.min.js" ] - 又比如
atom-beautify默认对.json文件也格式化,但你可能只想让它处理源码——就得在config.cson里关掉:"atom-beautify": { "general": { "enabledLanguages": ["javascript", "html", "css"] } } - 修改后必须完全退出 Atom(不只是关窗口),再重开才生效;热重载不刷新插件配置
配置文件路径本身不难找,但多数人不知道这些字段存在,结果调来调去都是表层设置,问题始终在底层卡着。










