根本原因是vscode启动时未加载shell配置文件(如~/.zshrc),导致path缺失;需设terminal.integrated.shellargs为["-l"]并彻底重启vscode,同时在launch.json和tasks.json中手动配置env字段补全path。

VSCode 终端报 command not found: node,但系统终端能用
根本不是 Node 没装好,是 VSCode 启动时没加载你的 shell 配置文件(比如 ~/.zshrc 或 ~/.bash_profile)。macOS/Linux 下双击图标启动的 VSCode 默认跑的是 non-login shell,跳过所有 export PATH=... 逻辑。
验证方法:在 VSCode 集成终端里执行 echo $PATH,再和系统终端里执行的结果对比。如果缺了 /opt/homebrew/bin(Apple Silicon)、/usr/local/bin 或你自定义的 Node 路径,就坐实了。
- 临时解法:在 VSCode 设置中搜
terminal.integrated.shellArgs,设为["-l"](小写 L,不是数字 1),强制走 login 流程 - 改完必须彻底退出 VSCode:macOS 右键 Dock 选「退出」,Windows 用任务管理器结束所有
Code.exe进程 - 重启后,关闭所有已打开的集成终端标签页,再按
Ctrl+`新建一个才生效 - 如果
~/.zshrc开头有[[ -n $ZSH_EVAL_CONTEXT ]] && return这类防护,会提前退出——加一句echo "zshrc loaded"就能验证是否真被读取
Windows 下 npm 报“无法将 'npm' 项识别为 cmdlet”
这不是 PowerShell 权限问题,而是 VSCode 继承了错误的 PATH:要么 Node 安装时没勾选“Add to PATH”,要么你用 nvm-windows 装在非默认路径(比如 D:
vm4w
odejs),但系统 PATH 里没填这个位置。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 先查真实 Node 路径:
where node(CMD)或Get-Command node(PowerShell),确认输出是不是C:Program Files odejs ode.exe或D: vm4w odejs ode.exe - 如果路径不对,去系统环境变量面板,把正确路径加到“用户变量”的
PATH里(别只加系统变量,普通用户登录时不一定继承) - 若用
nvm-windows,推荐在 VSCode 设置 JSON 里直接补PATH:"terminal.integrated.env.windows": { "PATH": "${env:PATH};D:\nvm4w\nodejs" } - 注意分隔符是
;,不是:;${env:PATH}必须保留,否则连notepad都打不开
F5 调试时报“找不到 Node.js 二进制文件 'node'”,但终端能跑 node -v
终端能用 ≠ 调试器能用。VSCode 的调试器(launch.json)和构建任务(tasks.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里的键值对
terminal.integrated.env.* 配置后 ls 都报错
因为这个配置项是覆盖式写入,不是追加。写成 "PATH": "/opt/homebrew/bin" 等于把系统原有 PATH 全删了,连 ls、cd 都找不到。
- 正确做法必须显式拼接原始值:
- macOS/Linux:
"PATH": "${env:PATH}:/opt/homebrew/bin"(用:分隔) - Windows:
"PATH": "${env:PATH};C:\msys64\ucrt64\bin"(用;分隔) - 平台键名必须写对:
terminal.integrated.env.osx、terminal.integrated.env.windows、terminal.integrated.env.linux,写成.mac或.win无效 - 改完设置后,必须关闭所有已打开的集成终端标签页,再新建才生效
launch.json 和 tasks.json 里的 env 字段——这是两个独立的环境上下文,得分别喂。










