Sublime Text 本身不运行 Node.js,仅调用系统已安装的 node 命令;必须先在终端验证 node -v 可用,再通过硬编码绝对路径配置 NodeJS.sublime-build 文件,设 working_dir 为 $file_path 并启用 shell:true。

Sublime Text 本身不运行 Node.js,它只调用你系统里装好的 node 命令——所以第一步不是配 Sublime,而是确认终端里 node -v 能输出版本号。否则所有构建配置都白搭。
为什么 Ctrl+B 按了没反应,或报 “'node' is not recognized”
这不是 Sublime 的 bug,是它根本没找到 node 可执行文件。
- macOS/Linux:图形界面(Dock/Spotlight)启动 Sublime 时,
~/.zshrc或~/.bash_profile不会被加载,PATH 里没有node路径 - Windows:Node.js 安装时没勾选 “Add to PATH”,或者用了 Microsoft Store 版本(不写系统变量)
- 别信
"shell": true能自动修好 PATH——它在 macOS 上可能加载错 shell 配置,在 Windows 上反而卡住 - 最稳解法:先在终端运行
which node(macOS/Linux)或where node(Windows),拿到绝对路径,比如/opt/homebrew/bin/node或C:\Program Files\nodejs\node.exe,然后硬编码进构建配置
怎么写一个真正能跑的 NodeJS.sublime-build 文件
文件名必须是 NodeJS.sublime-build,保存到 Packages/User/ 目录下(菜单 Tools → Build System → New Build System… 后默认位置即可)。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
-
"cmd"必须是数组,例如["/opt/homebrew/bin/node", "$file"],不能写成字符串"node $file" -
"working_dir": "$file_path"不可省略——否则require('./config.json')会从 Sublime 安装目录开始找,而不是你的项目目录 -
"selector": "source.js"确保只对.js文件启用该构建系统 - 加
"encoding": "utf-8"可避免中文路径或输出乱码(尤其 Windows cmd 默认 GBK) - JSON 不能有注释、尾随逗号、单引号;保存前建议用 JSONLint 验证格式
运行带参数、交互式输入或长期服务的脚本为什么卡住
Sublime 原生构建系统是单次执行、非交互式的——它不支持 process.stdin,也没办法按 Ctrl+C 终止进程。
- 脚本里用了
readline、prompt-sync或http.createServer().listen(3000),输出面板会卡死或一闪而过 - 别试图改
"cmd"为["nodemon", "$file"]——Windows 下大概率找不到命令;应改用["cmd", "/c", "nodemon $file"](Windows)或["sh", "-c", "nodemon $file"](macOS/Linux) - 真要交互式运行(比如调试 CLI 工具、启 HTTP server),必须用插件如
Terminus:装好后按Ctrl+Shift+P→Terminus: Open Default Shell in Panel,再手动输node index.js - 每次修改代码后记得先
Ctrl+S保存——构建系统不会自动保存当前文件,$file指向的是磁盘上旧版本
最易被忽略的一点:用 nvm 或 volta 管理 Node 版本时,nvm which 18.18.2 得到的路径里如果含 ~,JSON 不会自动展开,得写成完整路径,比如 /Users/yourname/.nvm/versions/node/v18.18.2/bin/node;而且每次切换版本后,这个路径必须手动更新。

















