Sublime Text配置Node.js环境需先确保终端中node -v可用,再创建.sublime-build文件,硬编码node绝对路径、设"working_dir":"$file_path"和"encoding":"utf-8",并保存至Packages/User/目录。

Sublime Text 本身不运行 Node.js,它只是调用你系统里已装好的 node 命令——如果终端里 node -v 都报错,Ctrl+B 肯定失败。
确认 node 命令在终端真正可用
这不是可选步骤,是硬性前提。很多“配置失败”其实卡在这一步就结束了。
- 打开独立终端(macOS/Linux 用 Terminal,Windows 用 PowerShell 或 CMD),不是 Sublime 内置 console
- 执行
node -v和npm -v,必须有输出;若提示command not found或'node' is not recognized,说明 Node.js 没装好,或没进系统 PATH - macOS/Linux 运行
which node,Windows 运行where node,拿到绝对路径(如/opt/homebrew/bin/node或C:/Program Files/nodejs/node.exe) - 如果你用
nvm,先在终端里nvm use切到目标版本,再验证node -v
创建 .sublime-build 文件时 cmd 字段必须写死绝对路径
用 ["node", "$file"] 看似简洁,但在 GUI 启动的 Sublime(Dock、开始菜单、Spotlight)中大概率失效——它压根不继承 shell 的 PATH。
- 必须用
which node或where node输出的完整路径,例如:"cmd": ["/opt/homebrew/bin/node", "$file"](macOS)或"cmd": ["C:/Program Files/nodejs/node.exe", "$file"](Windows) - Windows 路径含空格时,用正斜杠
/或双反斜杠\,别用单反斜杠 -
cmd必须是数组格式,不能写成字符串(如"cmd": "node $file"),否则 Sublime 不识别 - 不要用
shell_cmd字段——它会忽略encoding,中文输出直接变问号
working_dir 和 encoding 是模块加载与中文显示的关键
不设 working_dir,require('./utils') 会报 MODULE_NOT_FOUND;不设 encoding,console.log('你好') 在 Windows 上基本是乱码。
-
"working_dir": "$file_path":强制 Node.js 启动时工作目录为当前 JS 文件所在目录,和你在终端里cd xxx && node index.js行为一致 -
"encoding": "utf-8":必须配合cmd字段使用,shell_cmd下该字段被忽略 -
"shell": true:macOS/Linux 推荐开启,确保能加载~/.zshrc中的nvm环境;Windows 若确定node已进系统 PATH,可设为false - JS 文件本身也得保存为无 BOM 的 UTF-8 编码,否则仍可能乱码
构建系统文件必须放在 Packages/User/ 目录下
路径写错、文件名带空格、扩展名不是 .sublime-build,都会导致 Build System 不生效。
- 菜单栏选择
Tools → Build System → New Build System…,清空默认内容,粘贴 JSON 配置 - 保存为
NodeJS.sublime-build(名字随意,但后缀必须是.sublime-build) - 文件必须存到
Packages/User/目录:
— macOS:~/Library/Application Support/Sublime Text/Packages/User/
— Windows:%APPDATA%Sublime TextPackagesUser - 保存后,在 JS 文件中按
Ctrl+B(Windows/Linux)或Cmd+B(macOS),检查底部面板是否稳定输出结果
最容易被忽略的是:GUI 启动的 Sublime 不读 shell 配置,所以“PATH 正确”在终端里成立,不代表 Sublime 能用;硬编码 node 绝对路径 + 显式指定 working_dir 和 encoding,才是唯一稳解。


















