sublime text 本身不自带 prettier,必须通过 jsprettier 等插件桥接本地 prettier cli;关键在于显式配置绝对路径的 prettier_cli_path,确保语法识别正确(如 .tsx 需识别为 typescriptreact),并启用 auto_format_on_save,同时优先使用 json 格式 .prettierrc 以保证配置生效。

Sublime Text 本身不自带 Prettier,所谓“全宇宙最强格式化”得靠手动搭,而且容易卡在 prettier 找不到、node_modules 路径错、或者保存时没反应这几个地方。
怎么让 Sublime 真正调用到你本地的 prettier
关键不是装插件,而是让插件知道 prettier 在哪。Sublime 的 JsPrettier 或 SublimeLinter-prettier 默认会去全局找 prettier,但如果你是用 npm install --save-dev prettier 装在项目里,它就找不到。
- 要么全局装:
npm install -g prettier(简单,但版本难统一) - 要么在插件设置里指定路径:打开
Preferences → Package Settings → JsPrettier → Settings,加这一行:"prettier_cli_path": "/your/project/node_modules/.bin/prettier"
(注意 macOS/Linux 用prettier,Windows 用prettier.cmd) - 路径必须是绝对路径,
~/不生效,得写成/Users/you/project/...
为什么保存时格式化没触发,或只格式化了一半
常见原因是语法识别错位,比如文件明明是 .tsx,Sublime 当成了 JavaScript,而 JsPrettier 默认不处理 TSX;或者用了 prettier-eslint 却没装 eslint。
Prettier 是一款"有主见的"代码格式化工具,通过解析代码并按照统一规则重新格式化,强制执行一致的代码风格。支持 JavaScript、TypeScript、CSS、SCSS、HTML、Vue、JSON、Markdown、YAML 等多种语言。可配置为保存时自动格式化。
- 确认右下角语法显示是
TypeScriptReact(不是JavaScript),否则插件压根不跑 - 检查插件配置里是否启用了对应语言:
"auto_format_on_save": true和"auto_format_on_save_excludes": [](别留默认的排除项) - 如果用了
prettier-eslint,确保项目里真有eslint,且prettier-eslint版本兼容你的eslint(v8+ 需要prettier-eslint@^14)
格式化后缩进/引号/分号不按你 .prettierrc 来
Sublime 插件默认不读项目根目录的 .prettierrc,尤其当配置是 JS/TS 文件(如 .prettierrc.js)时,Node 环境缺失会导致加载失败。
- 优先用 JSON 格式写
.prettierrc(最稳) - 如果非要用 JS 版,得确保插件设置里开了
"prettier_options": {"config": "./.prettierrc.js"},且路径相对于当前文件所在目录 - 插件自身也有默认值,比如
"single_quote": false,会覆盖配置文件——删掉这些硬编码项,让它完全走配置文件
真正麻烦的是多项目混用时,每个项目的 prettier 版本、配置、依赖链都可能不同,靠一个全局路径撑不住。这时候就得接受:Sublime 不是 VS Code,它不会自动切上下文环境,得手动管好路径和配置范围。










