VSCode不自带可替换Node运行时,所谓“升级”实为更新系统Node版本并确保VSCode正确加载:终端需继承shell环境(macOS/Linux用code .启动,Windows重启并配置PATH),调试器依赖launch.json中runtimeExecutable或PATH,插件则受VSCode内置Electron Node版本(如v22.4.0/napi=9)约束,nvm切换后须彻底重启VSCode以刷新所有运行时上下文。

VSCode 本身不提供“升级内置 Node.js”的功能——它不自带可替换的 Node 运行时,所谓“内置”只是调试器默认查找系统 PATH 中的 node。真正要升级的,是你系统里那个被 VSCode 调用的 Node.js 版本。
为什么 node -v 在终端里是 v20,但在 VSCode 终端里还是 v16?
VSCode 启动时未必加载你的 shell 初始化文件(比如 ~/.zshrc 或 ~/.bash_profile),所以即使你用 nvm install --lts 装了新版本、nvm use 20 切换了,VSCode 的集成终端可能仍沿用旧 PATH。
- Mac/Linux:按
Cmd+Shift+P→ 输入Developer: Reload Window强制重载窗口,让 VSCode 重新读取 shell 环境 - 更可靠的做法:从终端启动 VSCode,比如
code .,这样它直接继承当前 shell 的 PATH 和nvm状态 - Windows:如果安装 Node.js 时没勾选
Add to PATH,手动把C:\Program Files\nodejs\加到系统环境变量里,然后重启 VSCode
调试时提示 “Cannot find runtime 'node'” 怎么办?
这是 VSCode 调试器找不到 node 可执行文件,和终端能跑 node 是两回事。调试器只认 launch.json 里写的路径,或全局 PATH(但不走 nvm 的软链逻辑)。
生成Blender Python (bpy)脚本,该脚本使用node_groups API和GeometryNodeTree接口程序化地创建几何节点修改器树,用于参数化3D资产生成。
- 打开项目根目录下的
.vscode/launch.json,检查configurations里有没有"runtimeExecutable"字段 - 如果用了
nvm,别写"runtimeExecutable": "node"—— 它找不到;改用绝对路径,比如"runtimeExecutable": "/Users/you/.nvm/versions/node/v20.15.0/bin/node" - 不确定路径?在终端里运行
which node,复制输出结果粘贴进去 - 删掉
runtimeExecutable行,让调试器走默认查找逻辑(依赖 PATH),但前提是 VSCode 终端已正确加载新版 Node
用 nvm 切换版本后,插件(比如 ESLint、TypeScript)还是报错?
很多插件底层调用的是 Node.js 的模块解析和 API,它们对版本敏感。比如 ESLint v8+ 要求 Node ≥ v14.17,而某些老插件只兼容 v16 以下。
- 先确认当前工作区实际生效的 Node 版本:在 VSCode 终端里直接运行
node -v - 检查项目根目录是否有
.nvmrc文件,内容是否匹配你期望的版本(如20.15.0),然后运行nvm use - 重启 VSCode(不是 reload window,是彻底关闭再打开),避免插件缓存旧版本的
require结果 - 禁用所有非必要 JS/TS 插件,只留官方
JavaScript and TypeScript,排除插件间冲突导致的类型服务异常
最常被忽略的一点:VSCode 的“自动检测 Node 版本”只发生在首次打开工作区时。改完 nvm 或 PATH 后,不重启或不重载窗口,它就继续用旧的缓存路径。别信状态栏右下角显示的版本号——那是编辑器猜的,不是调试器或终端实际用的。

















