本质是vscode终端未加载shell配置文件导致path缺失,需设terminal.integrated.profiles中对应shell的args为["-l"]并完全重启vscode;macos/linux检查~/.zshrc是否含nvm初始化代码,windows需处理powershell执行策略或改用cmd终端。

VSCode 内置终端默认不自动识别 node 命令,直接按 Ctrl+\` 打开终端后运行 node --version 报错 command not found,本质是终端没加载系统 PATH 中的 Node.js 可执行路径——不是 VSCode 问题,而是 Shell 环境未正确初始化。
终端启动时没读取 shell 配置文件(如 ~/.zshrc 或 ~/.bash_profile)
macOS / Linux 下 VSCode 默认以非登录 Shell 启动终端,跳过配置文件加载,导致 node、nvm 等命令不可用。
- 检查当前终端是否为登录 Shell:运行
shopt login_shell(bash)或echo $0(zsh,若输出-zsh表示是登录 Shell) - 临时修复:在终端中手动执行
source ~/.zshrc(或对应配置文件),再试node --version - 永久修复:在 VSCode 设置中搜索
terminal.integrated.profiles,找到对应 shell 的 profile 配置项,添加"args": ["-l"](-l表示 login shell);例如 zsh 配置应类似:"zsh": { "path": "zsh", "args": ["-l"] }
node 命令存在但版本不对(尤其用了 nvm)
即使 node 可执行,终端可能仍用系统自带旧版(如 macOS 的 /usr/bin/node),而 nvm 安装的版本未被激活。
- 在终端中运行
which node和nvm current,确认两者指向同一版本 - 若
nvm current显示版本但which node指向系统路径,说明nvm初始化代码未生效——检查~/.zshrc是否包含export NVM_DIR=...和[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - 修改配置后,必须重启 VSCode(不只是关闭终端),否则集成终端不会重新读取环境
Windows 上 PowerShell 默认阻止脚本执行,nvm 或自定义 node 路径失效
PowerShell 策略限制使 nvm.ps1 或环境变量中的路径无法加载,表现为 node 不识别或报错 cannot be loaded because running scripts is disabled。
- 临时允许:在 VSCode 终端中运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 更稳妥做法:改用 Windows Terminal + Command Prompt 作为 VSCode 默认终端(在
terminal.integrated.defaultProfile.windows中设为Command Prompt),避开 PowerShell 策略限制 - 若坚持用 PowerShell,确保
nvm安装路径(如C:\Users\XXX\nvm)已加到系统PATH,且node命令指向该目录下的可执行文件
最常被忽略的是:改完 shell 配置或环境变量后,只重启终端窗口没用,必须完全退出 VSCode 再重开——集成终端的环境是在 VSCode 启动时一次性继承的,中途 reload window 不会刷新底层 Shell 环境。











