jsprettier是sublime中唯一稳定支持.prettierrc的prettier插件,需全局安装node.js和prettier cli,显式配置绝对路径的prettier_cli_path与node_path,手动添加ts/tsx/vue等扩展名,并确保文件语法识别正确。

装 JsPrettier,别碰叫“Prettier”的那个插件——它在 Sublime Text 4 下根本加载不了,也不读 .prettierrc。
为什么装了插件却没反应?
不是插件坏了,是 Sublime 找不到 prettier 命令。Sublime 不继承 shell 的 PATH(比如你 ~/.zshrc 里配的 npm 全局 bin 路径),所以即使终端里 prettier --version 能跑,Sublime 仍会静默失败。
- 先在终端执行
which prettier(macOS/Linux)或where prettier(Windows),拿到绝对路径,例如/opt/homebrew/bin/prettier或C:\Users\XXX\AppData\Roaming\npm\prettier.cmd - 再运行
which node或where node,确认node -v≥ 14.0.0,并拿到node绝对路径 - 这两条路径必须显式填进 JsPrettier 配置,不能留空、不能用
~、不能是null
怎么配置才能支持 TypeScript 和 Vue?
JsPrettier 默认只认 js 和 jsx,ts、tsx、vue 文件压根不会触发格式化——哪怕语法识别正确也没用。
- 打开
Preferences → Package Settings → JsPrettier → Settings – User - 必须手动加进
"custom_file_extensions":比如["js","jsx","ts","tsx","vue","json"] - 确保文件右下角显示的是
TypeScript或Vue,不是Plain text;否则插件根本不看这个文件 - 如果
vue还不生效,检查是否装了Vue Syntax Highlight插件,否则 Sublime 无法正确识别语法
如何让 .prettierrc 生效?
默认情况下 JsPrettier 完全忽略项目里的 .prettierrc 或 prettier.config.js,只用插件内置配置。
- 在用户设置里加这一行:
"config_precedence": "file-override" - 必须写在
"prettier_options"对象内部,不是顶层字段 - 配置文件得放在项目最外层根目录;如果文件路径是
packages/ui/src/Button.tsx,而.prettierrc在packages/ui/下,旧版 JsPrettier 可能找不到——别嵌太深 - 改完配置保存后,重启 Sublime(部分版本不重启不生效)
保存自动格式化为什么有时失效?
"auto_format_on_save": true 看似简单,但实际依赖三个条件同时成立:
- 文件扩展名在
"custom_file_extensions"列表里 - 右下角语法识别为对应语言(如
TypeScript),不是Plain text - 文件未被
"auto_format_on_save_excludes"排除(比如你写了["node_modules/**"]却忘了加引号) - 如果只想对某些类型启用,别全局开,改用
"format_on_save_enabled": true并配合"syntax"字段做更细粒度控制(需搭配 JS Custom 类插件)
最容易被忽略的是:Sublime 启动时 PATH 是空的,不读 shell 配置;哪怕你 npm install -g prettier 成功了,也得把 prettier_cli_path 和 node_path 写死,少一个都白搭。











