sublime text 不能直接运行 node.js,它仅调用系统已安装的 node 命令;需先验证终端中 node -v 可用,再通过硬编码 node 绝对路径、设 "cmd": ["node", "$file"]、"working_dir": "$file_path" 和 "encoding": "utf-8" 配置构建系统。

Sublime Text 不能直接运行 Node.js,它只是调用你系统里装好的 node 命令——如果终端里 node -v 都报错,那 Sublime 肯定跑不起来。
Ctrl+B 报 “command not found” 或 “node is not recognized” 怎么办
这不是 Sublime 的问题,而是 GUI 启动时没继承 shell 的 PATH。macOS/Linux 尤其明显;Windows 则常因 Node.js 没进系统环境变量,或用了 nvm 但没激活。
- 先在终端(不是 Sublime 内置 console)执行
which node(macOS/Linux)或where node(Windows),拿到绝对路径,比如/usr/local/bin/node或C:/Program Files/nodejs/node.exe - 别信“自动检测 PATH”,GUI 启动的 Sublime 基本不可靠
- 如果你用
nvm,确保当前终端里node -v返回的是你要的版本;"shell": true能帮它加载~/.zshrc,但前提是 Sublime 是从该 shell 启动的(比如终端里运行subl)
构建系统里 cmd 和 shell_cmd 必须分清
必须用 cmd 字段,不能用 shell_cmd——否则 "encoding": "utf-8" 会失效,中文输出直接乱码。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
-
"cmd": ["node", "$file"]:推荐方式,支持encoding、working_dir等关键字段 -
"shell_cmd": "node \"$file\"":看起来简洁,但 Sublime 不会按你设的encoding解码输出,Windows 下大概率中文变问号 - Windows 用户若确定
node已进系统 PATH,可设"shell": false;macOS/Linux 建议保留"shell": true,尤其用了nvm或asdf
working_dir 不设成 "$file_path" 就会出错
不设这个,require('./utils')、fs.readFile('./config.json') 这类相对路径全都会失败——因为 Node.js 默认工作目录是 Sublime 的安装路径或用户主目录,不是你的 JS 文件所在目录。
-
"working_dir": "$file_path"让node启动时自动cd到文件所在目录 - 注意:
$file_path结尾不含斜杠,但 Node.js 的require和fs能正确识别 - 如果你的脚本依赖
process.cwd(),这个设置就更关键了
中文输出乱码?只差一个 "encoding": "utf-8"
Sublime 控制台默认用系统 locale 解码子进程输出(Windows 是 GBK),而 Node.js 默认 UTF-8 输出,两者不匹配就乱码。改文件编码、改状态栏显示都没用。
- 必须在构建配置里显式写
"encoding": "utf-8" - 必须配合
cmd字段使用,shell_cmd无效 - Windows 用户尤其要注意:控制台默认 GBK,不加这行基本必乱码
最易被忽略的点是启动方式——你在终端里 node -v 正常,不代表 Sublime 也能用;GUI 启动的 Sublime 往往压根没加载你的 ~/.zshrc 或 PATH 设置。硬编码绝对路径 + 显式 working_dir + encoding,才是跨平台稳住的关键。










