You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode运行npm脚本时使用错误Node.js版本问题求助

解决VSCode Run Task执行npm脚本时Node版本不一致的问题

原因

VSCode的Run Task默认不会以登录shell模式运行zsh,因此不会加载~/.zshrc里的nvm配置,导致执行脚本时调用的是系统默认的Node版本(v16),而非nvm管理的v18。

解决方案

方案1:在tasks.json中指定Node路径

打开项目下的.vscode/tasks.json,给目标任务添加env字段,直接指向nvm管理的Node18路径:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "node-version",
      "type": "shell",
      "command": "node -v",
      "env": {
        "PATH": "${HOME}/.nvm/versions/node/v18.xx.xx/bin:${env:PATH}"
      },
      "problemMatcher": []
    }
  ]
}

提示:可以在终端执行which node获取当前Node18的完整路径,替换上面的v18.xx.xx。

方案2:让Task先加载zsh配置

修改tasks.json中的命令,先执行source ~/.zshrc加载nvm配置,再运行脚本:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "node-version",
      "type": "shell",
      "command": "source ~/.zshrc && node -v",
      "problemMatcher": []
    }
  ]
}

方案3:全局配置VSCode使用登录shell

打开VSCode设置(快捷键Cmd+,),搜索terminal.integrated.profiles.osx,修改zsh的配置为登录模式:

"terminal.integrated.profiles.osx": {
  "zsh": {
    "path": "/bin/zsh",
    "args": ["-l"]
  }
},
"terminal.integrated.defaultProfile.osx": "zsh"

保存设置后重启VSCode,Run Task会自动加载~/.zshrc,使用nvm管理的Node版本。

内容的提问来源于stack exchange,提问作者Gerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:38:17