jsprettier必须显式配置prettier_cli_path绝对路径、auto_format_on_save为true,并在auto_format_on_save_extensions中列出对应扩展名,否则保存自动格式化静默失效。

JsPrettier插件必须填死prettier_cli_path路径
Sublime Text 启动时不会继承你终端的 PATH,所以即使 prettier --version 在终端能跑,JsPrettier 也大概率找不到命令——它不查 PATH,只认你填进配置里的绝对路径。
必须用 which prettier(macOS/Linux)或 where prettier(Windows)查真实路径,不能写 "prettier" 或留空。常见错误路径:
-
"prettier_cli_path": "prettier"→ 静默失效 -
"prettier_cli_path": "/usr/local/bin/prettier"(macOS)但实际在/opt/homebrew/bin/prettier→ 找不到命令 - Windows 路径含空格或中文,没加引号 → 插件启动失败,控制台可能只报
IOError不提具体原因
auto_format_on_save默认是false,不手动开就永远不触发
装完 JsPrettier 后,auto_format_on_save 默认是 false,不是“装完即用”。这是设计,不是 bug —— 防止插件未经确认就改你代码。
必须在 Preferences → Package Settings → JsPrettier → Settings – User 中显式设为 true,同时配好扩展名列表:
- 漏写
"auto_format_on_save": true→ 点保存毫无反应 -
"auto_format_on_save_extensions"没列"ts"却想格式化.tsx文件 → 直接跳过 - 右下角语法模式显示
Plain Text或HTML→ 即使扩展名对,JsPrettier 也不处理(它只响应JavaScript、TypeScript、Vue等 scope)
项目级.prettierrc文件会被自动读取,但路径和编码有硬要求
JsPrettier 会从当前文件所在目录向上逐级查找 .prettierrc(支持 .json、.yml、.js),但有两个容易卡住的点:
- 文件必须是 UTF-8 无 BOM 编码,否则 JsPrettier 解析失败,回退到默认规则(不报错,只悄悄不用你的配置)
- 如果文件在
node_modules或dist目录下,即使有.prettierrc也不会加载(因为auto_format_on_save_excludes默认已排除这些路径) -
.prettierrc.js需要 Node.js 环境支持,且 Sublime 启动方式影响模块解析(比如双击图标启动 vs 终端执行subl)
验证是否真通:用 Sublime 控制台直接调用prettier
别靠“点了保存有没有效果”来判断,那太慢还容易误判。最快验证方式是按 Ctrl+` 调出 Sublime 控制台,粘贴执行:
import subprocess; subprocess.run(['<code>/usr/local/bin/prettier</code>', '--version'])
把 /usr/local/bin/prettier 替换成你实际的 prettier_cli_path 值。有版本号输出,才说明路径、权限、Node 环境三者全通;如果报 FileNotFoundError 或 OSError,问题一定出在路径或权限上。
真正麻烦的不是配置项多,而是每个环节都静默失败——路径错、开关关、语法不对、编码带 BOM,全都不报红字,只让你反复保存却没变化。











