Sublime Text 4 必须手动配置构建系统才能运行 Node.js 脚本,核心是硬编码 node 绝对路径、设"working_dir":"$file_path"和"encoding":"utf-8";GUI 启动不继承 shell PATH,终端 node -v 可用是硬前提。

Sublime Text 4 不能直接运行 Node.js 脚本,必须手动配置构建系统;所有“Ctrl+B 报错”问题,90% 都是因为 node 命令路径没传进去——GUI 启动的 Sublime 根本不继承 shell 的 PATH,硬编码绝对路径才是唯一稳解。
确认 node 在终端可用是硬前提
这不是可选步骤,而是成败分界线。Sublime 不负责装 Node.js,只负责调用你系统里已有的 node。如果终端里 node -v 都报错,后续所有配置都无效。
- 打开独立终端(不是 Sublime 内置 console),执行
node -v和npm -v,必须有输出 - macOS/Linux 运行
which node,典型输出如/opt/homebrew/bin/node或/usr/local/bin/node - Windows 运行
where node,典型输出如C:\Program Files\nodejs\node.exe - 若无输出:重装 Node.js 官网 LTS 版;Windows 安装时务必勾选 “Add to PATH”;macOS 避免 Microsoft Store 版本
cmd 字段必须写死 node 绝对路径
别用 ["node", "$file"] —— 这依赖 PATH 继承,在 Dock/Spotlight/开始菜单启动的 Sublime 中几乎必然失败。GUI 进程不读 ~/.zshrc,也不认 Windows 系统变量。
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
- 把
which node或where node输出的完整路径,直接填进"cmd"数组第一项 - macOS/Linux 示例:
"cmd": ["/opt/homebrew/bin/node", "$file"] - Windows 示例:
"cmd": ["C:/Program Files/nodejs/node.exe", "$file"](用正斜杠或双反斜杠,禁止单反斜杠) -
"cmd"必须是数组,不能写成字符串"cmd": "node $file",否则 Sublime 直接忽略
working_dir 和 encoding 缺一不可
漏掉 "working_dir": "$file_path",require('./utils') 或 fs.readFileSync('config.json') 就会崩;不加 "encoding": "utf-8",Windows 下中文输出大概率变问号。
-
"working_dir": "$file_path"强制 Node.js 启动时 cwd 为当前 JS 文件所在目录,和你在终端里cd /path && node index.js行为一致 -
"encoding": "utf-8"只对cmd字段生效,shell_cmd下无效;JS 文件本身也得存为无 BOM 的 UTF-8 - Windows 用户尤其注意:
cmd默认用 GBK,console.log('你好')不加encoding几乎必乱码
用 nvm/volta 时怎么处理版本切换
nvm 不是魔法开关,它只是动态改 shell 的 PATH。Sublime 构建进程不执行 nvm use,也不加载你的 shell 配置——所谓“支持 nvm”,本质是绕过它,直取真实二进制。
- 先在终端切到目标版本:
nvm use 18.18.2 - 再运行
nvm which 18.18.2,得到类似~/.nvm/versions/node/v18.18.2/bin/node的路径 - 把这个路径硬编码进
"cmd",而不是写["nvm", "exec", "18.18.2", "node", "$file"](nvm命令在构建环境里不存在) - 每次切换 Node 版本后,必须手动更新这个路径;嫌麻烦就固定一个项目用的版本,别追求“自动切换”
最易被忽略的点:Sublime 构建系统只认 Packages/User/ 目录下的 .sublime-build 文件,路径错、文件名带空格、JSON 有尾随逗号或单引号,都会导致构建系统不出现或失效。

















