根本原因是VSCode未继承系统PATH中的node.exe路径,必须重启VSCode才能生效;验证需在内置终端执行node -v,成功后才可配置launch.json或插件。

VSCode 终端里 node 命令不可用,不是 VSCode 问题,而是它根本没继承到系统 PATH 中的 node.exe 路径——改完环境变量不重启 VSCode,内置终端永远找不到 node。
终端执行 node -v 报“不是内部或外部命令”
这是最常见也最底层的卡点。VSCode 启动时只读取一次系统 PATH,后续修改对已打开的窗口完全无效。
- 必须在系统原生命令行(Windows 的
cmd或powershell,macOS/Linux 的Terminal)中运行node -v和npm -v,两者都输出版本号才算过关 - Windows 下典型路径是
C:Program Files odejs;若装在含空格或中文的路径(如C:软件 odejs),PATH 会失效 - 改完系统环境变量后,必须彻底关闭所有 VSCode 窗口(不只是关终端),再重新打开
- 验证方式:打开 VSCode 内置终端(
Ctrl + `),直接输node -v—— 不成功就别配launch.json,全是白忙
为什么 Code Runner 运行 import 就报错
Code Runner 插件绕过项目上下文,直接调用 node index.js,不读 package.json 里的 "type": "module",也不加载 .env 或 exports 字段。
- ESM 项目(用了
import/export)下,Code Runner必然报Cannot use import statement outside a module - 正确做法是用 VSCode 内置终端:
cd到项目根目录,手动执行node index.js(行为与真实部署一致) - 若项目声明了
"type": "module",确保入口文件扩展名是.mjs,或明确加"type": "module"到package.json根对象 -
Code Runner只适合单文件快速验证,正式开发建议禁用
launch.json 里不写 runtimeExecutable 就等于没配调试
VSCode 默认按 PATH 顺序找 node,但 PATH 里那个 node 很可能和你在终端里 which node 看到的不是同一个——尤其你用 nvm 或装了多个 Node 版本时。
- 必须在
.vscode/launch.json的配置中显式指定runtimeExecutable,例如 Windows:"runtimeExecutable": "C:\Program Files\nodejs\node.exe",macOS/Linux:"runtimeExecutable": "/usr/local/bin/node" - 不写这个字段,断点可能不触发、
sourceMap失效、甚至require行为异常 - 验证方法:在代码里加一行
console.log(process.execPath),对比调试器输出路径和runtimeExecutable是否一致 - 调试
npm start?把"program"改成"npm","args"设为["start"],并加"console": "integratedTerminal",否则看不到 npm 输出
真正容易被忽略的是:PATH 修改后 VSCode 不自动刷新,以及 runtimeExecutable 不显式指定就默认依赖 PATH 顺序——这两处不对,其他所有 launch 配置都是纸面功夫。


















