vs code 找不到 node 命令是因未继承 shell 的 path:mac/linux 需重载窗口或终端启动 code;windows 应重装 node 并勾选 add to path 或手动添加路径。

VS Code 找不到 node 命令,但终端里能用
根本不是 VS Code 配置错了,而是它没继承你 shell 的 PATH。Mac/Linux 用户常因 ~/.zshrc 里加了 export PATH,但 VS Code 启动时压根没加载这个文件;Windows 用户则多因安装 Node.js 时漏勾了 “Add to PATH”。
- 先在终端运行
which node(Mac/Linux)或where node(Windows),确认路径真实存在 - Mac/Linux:按
Cmd+Shift+P→ 输入Developer: Reload Window,强制重载 shell 环境;若仍不行,直接从终端启动 VS Code:code . - Windows:重装 Node.js,务必勾选 “Add to PATH”;若已安装,手动把
C:\Program Files\nodejs\加进系统环境变量PATH
launch.json 中 program 字段总报错
填错 program 是调试启动失败最常见原因,错误提示通常是 Cannot find module 或静默退出。
- 推荐写成
"${workspaceFolder}/src/index.js",并确保该文件真实存在——别写成index.ts或dist/index.js却没构建 - 想临时调试当前打开的 JS 文件,用
"${file}"(注意不是${fileBasename}) - ESM 项目必须配
"env": { "NODE_OPTIONS": "--enable-source-maps" },否则断点映射失效 - 如果用
npm start启动服务,launch.json要改用"request": "launch"+"runtimeExecutable": "npm"+"runtimeArgs": ["start"]
断点打了却不停,或者调试控制栏灰掉
这不是插件没装全,而是调试器没识别到可执行上下文。尤其在 TypeScript、打包项目或使用 ts-node 时极易发生。
- 确认
tsconfig.json中已设"sourceMap": true,且编译后.js.map和.js在同一目录 - 用
ts-node直接跑 TS 文件时,不要在launch.json里写program指向.ts,应改用node --loader ts-node/esm模式,并在runtimeArgs中传参 - 如果用了
nvm/fnm,调试器默认不感知版本切换,稳妥做法是显式写死runtimeExecutable,比如"~/.nvm/versions/node/v18.17.0/bin/node" - 断点变空心?大概率是源码路径和实际运行路径不一致,检查
outFiles或resolveSourceMapLocations是否匹配构建输出
Code Runner 插件跑 JS 输出乱码或卡住
code-runner 默认行为太简陋,不处理编码、不捕获 stdin、不兼容 ESM,拿来跑 LeetCode 或简单脚本容易翻车。
- 在设置里搜
code-runner.executorMap,把javascript对应值改成:"node --experimental-specifier-resolution=node $fileName" - Windows 下中文路径乱码,加
-r utf-8:"node -r utf-8 $fileName" - 别用它跑含
process.stdin的交互式脚本——它根本不支持输入,换终端或调试器 - 真正需要稳定执行,优先用 VS Code 内置调试器或终端:
node app.js
console.log 的输出顺序都可能对不上。











