根本原因是vscode未继承shell的path环境变量:macos/linux因dock启动不加载~/.zshrc,windows因node安装时未勾选“add to path”;需重启vscode或从终端启动,并在内置终端执行node -v验证。

VSCode 找不到 node 命令,不是插件没装好,也不是设置漏了——根本原因是它压根没继承到你 shell 里配置好的 PATH。终端里能跑 node -v,但 VSCode 内置终端或调试器报 command not found: node,99% 是这个原因。
为什么终端能用,VSCode 却找不到 node
macOS/Linux 下,从 Dock 或 Spotlight 启动 VSCode 时,不会加载 ~/.zshrc 或 ~/.bash_profile;Windows 下则常见于安装 Node.js 时没勾选 “Add to PATH”,导致系统级环境变量缺失。
- 先确认 Node 安装路径:
which node(macOS/Linux)或where node(Windows),常见路径如/opt/homebrew/bin/node(macOS)、C:\Program Files\nodejs\(Windows) - macOS/Linux:检查该路径是否已加进
~/.zshrc的export PATH="...:$PATH"中;改完必须 重启 VSCode,source ~/.zshrc不够 - Windows:打开“系统属性 → 高级 → 环境变量”,把
C:\Program Files\nodejs\加进“系统变量”里的PATH;不确定就重装 Node.js,务必勾选 “Add to PATH” - 验证方式:在 VSCode 内置终端(
Ctrl+`)中直接执行node -v,有输出才算真正生效
用 code-runner 插件运行 JS 脚本总出问题
code-runner 默认命令太裸,不处理编码、模块类型、输入流,尤其在中文路径、ESM 项目或含 process.stdin 的脚本里极易失败。
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
- 乱码(Windows):在设置中搜
code-runner.executorMap,把javascript对应值改成:"node -r utf-8 $fileName" - ESM 报错
Cannot use import statement outside a module:确保项目根目录package.json有"type": "module",再把 executor 改成:"node --experimental-specifier-resolution=node $fileName" - 遇到
process.stdin就卡住:这是code-runner的硬伤,它不支持交互式输入;换用内置终端手动执行,或直接按F5进入调试模式
调试时断点不命中,提示 “Cannot launch program because corresponding JavaScript cannot be found”
这不是代码写错了,而是 VSCode 的 Node.js 调试器(vscode-js-debug)找不到真实可执行的 JS 文件,或者源映射(source map)没对齐,常见于 TypeScript、打包后项目、或 ESM/CJS 混用场景。
- 检查
.vscode/launch.json中的program字段:默认"${file}"只适合单文件脚本;若入口是src/index.js,必须显式写成:"${workspaceFolder}/src/index.js" - 注意
cwd(工作目录):Node 模块解析、fs.readFile('./config.json')都依赖它;路径不对会直接报Cannot find module - TypeScript 项目别直接调试
.ts文件:要么先编译(tsc),要么在launch.json中用runtimeExecutable指向ts-node - 启动后终端显示
Debugger attached才算真正进入调试;如果卡在Starting target,大概率是路径错,或 Node 版本低于 v14(旧版不支持当前调试协议)
最常被忽略的一点:VSCode 的环境变量继承是“一次性快照”,改完 PATH 不重启 VSCode,所有终端和调试器都读不到新值;哪怕你已经在终端里 source 了配置文件,也白搭。










