根本原因是VSCode图形界面启动未加载shell配置文件或系统PATH,需通过settings.json中terminal.integrated.env.*字段显式注入PATH并重启终端验证。

VSCode终端里 node -v 报 command not found,不是重装就能好
根本不是 Node 没装对,而是 VSCode 启动时压根没读你的 ~/.zshrc(macOS/Linux)或系统 PATH(Windows)。双击图标启动的 VSCode 是 non-login shell,export PATH=... 那行代码等于白写。验证很简单:在 VSCode 终端里执行 echo $PATH,再和系统终端里对比——路径明显短一截,就坐实了。
terminal.integrated.env.* 是唯一稳定生效的写法
别碰 terminal.integrated.shellArgs: ["-l"],它看似简单,但会绕过桌面环境初始化、破坏 oh-my-zsh/nvm/pyenv 等工具链,且 macOS GUI 下不可靠。真正跨平台、不依赖 shell 行为的方案,是直接在 settings.json 里注入环境变量:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- macOS:用
terminal.integrated.env.osx,值为{"PATH": "/opt/homebrew/bin:/usr/local/bin:${env:PATH}"} - Linux:用
terminal.integrated.env.linux,路径分隔符用:,同样必须含${env:PATH} - Windows:用
terminal.integrated.env.windows,路径用;拼接,例如"C:\Program Files\nodejs;${env:PATH}"或更安全的"C:/Program Files/nodejs;${env:PATH}" - 改完必须关闭所有已打开的终端 tab,再按
Ctrl+`新建一个——热重载不触发环境重载
launch.json 和 tasks.json 的 PATH 是独立的,不能复用终端配置
你在终端里能跑 node -v,不代表 F5 调试或 npm run build 就能用。调试器和构建任务启动的是全新进程,完全不继承终端环境。必须显式补全:
-
launch.json里每个 configuration 加"env"字段:{"PATH": "${env:PATH}:/usr/local/bin"}(macOS/Linux)或{"PATH": "${env:PATH};C:\Program Files\nodejs"}(Windows) -
tasks.json里对应 task 的"options": {"env": {...}},否则npm install在 task 里照样报错 -
runtimeExecutable字段如果存在,优先级高于 PATH,此时 PATH 注入无效——要么删掉它,要么确保路径指向真实可执行文件
nvm 用户最容易踩的坑:PATH 拼对了,nvm 还是不生效
nvm 不是光靠 PATH 就能驱动的,它依赖 shell 初始化脚本里的函数定义(比如 nvm use)。单纯往 PATH 里加 ~/.nvm/versions/node/v18.17.0/bin 只能让 node 命令可用,但 nvm list 或 nvm use 依然失败。真要支持 nvm 切换,只能走登录 shell 路线:
- 确认
~/.zshrc里有完整 nvm 初始化代码(不是只 export PATH) - 在
settings.json中设"terminal.integrated.profiles.osx"指向 zsh,并启用"terminal.integrated.defaultProfile.osx": "zsh" - 配合
"terminal.integrated.shellArgs.osx": ["-l"],强制加载 profile - 改完后必须彻底退出 VSCode(Dock 右键「退出」),再从系统终端执行
code .启动,否则后台进程仍用旧环境

















