VS Code启动调试出现'runtimeVersion'错误 已装NVM/NVS仍提示需安装
问题原因
VS Code的Node调试器在配置了runtimeVersion参数时,会调用NVM/NVS查找对应版本的Node.js执行文件。MacOS系统下GUI应用默认不会加载终端shell的配置文件(如.zshrc、.bashrc),而NVM的初始化逻辑通常写在这类配置文件中,导致VS Code无法识别到已安装的NVM。
解决方案
- 方案1:调整NVM初始化配置位置
把你shell配置文件中NVM的初始化代码移动到系统启动时会加载的全局配置文件中:
如果使用zsh(MacOS 10.15+默认shell),将以下代码从~/.zshrc移动到~/.zprofile,如果没有该文件直接新建即可:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
如果使用bash,将代码移动到~/.bash_profile或~/.profile中。修改完成后完全退出VS Code(按Cmd+Q)再重新打开验证。
也可以每次从终端执行code .启动VS Code,此时VS Code会继承终端的环境变量,可正常识别NVM配置。
方案2:移除runtimeVersion配置
如果当前终端默认的Node版本就是你需要的10.16.3,可以直接删除launch.json中第二套配置的"runtimeVersion": "10.16.3"字段,VS Code会直接使用默认的Node执行文件,不会触发NVM查找逻辑。方案3:直接指定Node执行文件路径
直接在launch配置中添加runtimeExecutable字段,指定对应版本Node的绝对路径,示例如下:
{ "type": "node", "request": "launch", "name": "Launch Program", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}/src/index.ts", "preLaunchTask": "npm: build", "outFiles": [ "${workspaceFolder}/**/*.js" ], "envFile": "${workspaceFolder}/.env", "resolveSourceMapLocations": [ "${workspaceFolder}/**", "!**/node_modules/**" ], "runtimeExecutable": "~/.nvm/versions/node/v10.16.3/bin/node" }
你可以在终端执行which node查看当前使用的Node路径,替换上面的路径值即可。
内容的提问来源于stack exchange,提问作者Rahul Kalidindi
相关产品推荐
相关产品推荐

