VSCode 启动时不加载 shell 初始化文件(如 ~/.zshrc),导致 PATH 未生效;macOS/Linux 需从终端启动,Windows 需配置系统环境变量;runtimeExecutable 写死后绕过 PATH;重启窗口不重载环境,必须彻底退出进程并重新启动。

VSCode 启动时根本没读你的 ~/.zshrc 或 PATH
不是 VSCode “配置错了”,而是它压根没加载你 shell 的初始化文件。macOS/Linux 下从 Dock、Spotlight 或桌面图标启动 VSCode,进程不经过 shell 登录流程,~/.zshrc 里的 export PATH=... 完全不生效;Windows 则更简单:系统级 PATH 里没写 C:\Program Files\nodejs\,VSCode 就永远找不到 node。
- 验证方式:打开 VSCode 内置终端(
Ctrl + `),直接输node -v—— 没输出就停在这步,别碰launch.json - macOS/Linux:改完
~/.zshrc后,必须彻底退出所有 VSCode 窗口(包括后台进程),再从终端执行code --no-sandbox .启动 - Windows:打开「系统属性 → 高级 → 环境变量」,在「系统变量」的
Path里确认存在且拼写准确的C:\Program Files\nodejs\(注意斜杠方向、无多余空格)
runtimeExecutable 在 launch.json 中会绕过系统 PATH
即使 node -v 在终端和 VSCode 终端里都能跑,调试器仍可能报 Cannot find runtime 'node' —— 因为 runtimeExecutable 字段一旦写死路径,就完全忽略系统 PATH,也不管你用的是 nvm 还是 fnm。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 如果项目根目录下有
.vscode/launch.json,检查configurations里是否含"runtimeExecutable": "/xxx/node";有就删掉这行,让调试器走默认查找逻辑 - 若必须指定(比如多版本共存),路径得写绝对路径,不能用
~(~/.nvm/versions/node/v18.17.0/bin/node可以,~/...不行) - 用
volta或fnm的用户,别依赖PATH切换,显式写死runtimeExecutable是唯一稳妥方案
工作区设置不会覆盖系统环境变量继承逻辑
.vscode/settings.json 里的配置只影响编辑器行为(比如格式化、缩进),对终端启动时的 PATH 或调试器的运行时查找路径毫无作用。所谓“在 VSCode 里配环境变量”,本质是让它能继承你 shell 已有的环境,不是靠编辑器自己“加”进去。
- 不要在
settings.json里写"terminal.integrated.env.linux": { "PATH": "..." }—— 这种写法只对新打开的终端生效,且极易覆盖原有PATH导致npm、git等命令丢失 - 真正要改环境变量,只做两件事:确保 shell 初始化文件(
~/.zshrc)正确导出PATH;确保 VSCode 进程本身是从该 shell 启动的 - 工作区设置唯一有用的地方是
code-runner.executorMap,比如把javascript改成"node --experimental-specifier-resolution=node $fileName",但这和环境变量无关
重启 VSCode 不等于重载环境变量
Developer: Reload Window 只刷新 UI 和插件状态,不重建进程,PATH 不会更新。很多用户卡在这一步,反复 reload 却始终 node -v 报错。
- macOS/Linux:关掉所有 VSCode 窗口 → 打开终端 → 执行
killall Code(确保后台进程清空)→ 再运行code --no-sandbox . - Windows:任务管理器里结束所有
Code.exe进程 → 重新双击图标或从开始菜单启动(前提是系统PATH已生效) - 验证必须在 VSCode 内置终端里做,不能只信外部终端的
node -v输出
PATH 就锁死了,后续任何 shell 配置修改都无效,必须杀进程重来。

















