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
相关产品推荐
相关产品推荐

