VSCode终端中node -v报错90%是因未继承系统PATH,需验证系统终端是否正常、启用登录shell(macOS/Linux设"terminal.integrated.shellArgs": ["-l"])、Windows改用PowerShell启动或手动补env变量,调试器还需在launch.json中显式配置env或runtimeExecutable。

VSCode终端里node -v报“不是内部或外部命令”,90%不是Node没装,而是VSCode根本没拿到你系统里设好的PATH——它启动的是个裸壳终端,跳过了~/.zshrc、~/.bash_profile或Windows用户环境变量。
先验证是不是系统级问题,别急着改VSCode
打开系统原生终端(CMD/PowerShell/Terminal/iTerm),运行:
-
where node(Windows)或which node(macOS/Linux)——有输出才说明Node真装对了 -
node -v和npm -v都返回版本号,才算通过基础验证
如果这一步就失败:重装Node.js,Windows务必勾选Add to PATH;macOS用Homebrew装完要重启终端;Linux手动安装的得自己加export PATH到~/.bashrc或~/.zshrc。
VSCode终端PATH比系统终端短?启用登录shell
在VSCode集成终端里运行echo $PATH(macOS/Linux)或echo %PATH%(Windows),复制结果,再跟系统终端里同一命令的输出逐行对比。缺了/opt/homebrew/bin、$HOME/.nvm/versions/node/v18.18.2/bin或%APPDATA%
pm这类路径,就是确诊了。
- macOS/Linux:打开VSCode设置(Cmd + ,),搜
terminal.integrated.shellArgs,设为["-l"](小写L,不是数字1) - 改完后必须关闭所有已打开的集成终端面板(不只是关标签页),再按
Ctrl + `新建一个 - 如果
~/.zshrc开头有[[ -n $ZSH_EVAL_CONTEXT ]] && return,它会让文件提前退出,后面所有export PATH都白写
Windows用户别信开始菜单启动的VSCode
从桌面图标或开始菜单双击打开的VSCode,拿不到用户环境变量,尤其%APPDATA%
pm和C:Program FilesGitin这类路径基本消失。
- 推荐做法:彻底退出VSCode(任务管理器结束所有
Code.exe进程),然后在PowerShell里执行code .启动 - 或者手动补
PATH:VSCode设置中搜terminal.integrated.env.windows,填入:{"PATH": "${env:PATH};C:\Users\XXX\AppData\Roaming\npm;C:\Program Files\Git\bin"}(注意反斜杠要双写) - 如果你用
nvm-windows,装完必须运行nvm use 18.19.0激活,否则node命令永远不可用
调试时F5报“Cannot find runtime 'node'”,但终端能跑node -v
终端能用 ≠ 调试器能用。VSCode调试器(launch.json)启动的是全新进程,完全不继承终端环境变量——它的PATH是空的,除非你手动喂进去。
-
launch.json里不能写environment(已弃用),得用env字段:"env": { "PATH": "${env:PATH};/usr/local/bin" } - Windows路径拼接用
;,Linux/macOS用:;平台键要写对:terminal.integrated.env.windows、.linux、.osx - 别在
configurations外层写env,那位置无效;也别指望envFile自动补PATH,它只读.env里的键值对
最稳的做法是在launch.json里显式写死runtimeExecutable,比如"runtimeExecutable": "C:\nodejs\node.exe"——路径里千万别有中文或空格,这是硬性限制。











