VSCode中node命令在终端能执行才算真正配好,否则所有后续操作均无效;需在系统终端验证node -v和npm -v输出版本号,改环境变量后必须彻底重启VSCode,调试时应显式配置runtimeExecutable并确保package.json声明"type": "module"以支持ESM。

node 命令在 VSCode 终端里能执行,才算真正配好——其余所有“一键”操作都建立在这个前提上。没这步,装插件、改配置、点调试全是空转。
验证 node 和 npm 是否真可用
很多人以为装完 Node.js 就能用,结果在 VSCode 里按 Ctrl+` 打开终端,输 node -v 却报 “command not found”。这不是 VSCode 的锅,是系统环境变量根本没生效。
- 必须在系统终端(macOS/Linux 打 Terminal,Windows 打 CMD 或 PowerShell)里运行
node -v和npm -v,且都有输出 - Windows 用户特别注意:安装时没勾选 “Add to PATH”,或装到了含中文/空格的路径(如
C:Program Files odejs),npm可能静默失败 - macOS/Linux 用
nvm的,确认source ~/.nvm/nvm.sh已写入~/.zshrc,且新开终端已加载 - 改完环境变量后,必须完全退出 VSCode 进程(macOS 在 Dock 右键选「退出」,Windows 在任务管理器里确认
Code.exe已结束),再重新打开
别信 Code Runner 插件能“一键运行”
Code Runner 默认用 node 执行 JS 文件,但它绕过项目上下文,不读 package.json 里的 "type": "module" 或 exports 字段,一碰 ES Module 就报 Cannot use import statement outside a module。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 临时测试用:在 VSCode 内置终端手动执行
node index.js,行为和真实部署一致 - 如果非要用
Code Runner,进设置搜code-runner.executorMap,把javascript对应值改成:node --experimental-specifier-resolution=node $fileName - 它不支持
process.stdin类交互式脚本——这类代码必须在终端里手动跑
launch.json 里 runtimeExecutable 不写就容易翻车
VSCode 调试器默认按 PATH 找 node,但你终端里看到的 node 和它找到的,很可能是两个不同版本(比如 nvm 切了 v18,VSCode 却调了 v20)。
- 在项目根目录建
.vscode/launch.json,显式指定:"runtimeExecutable": "/usr/local/bin/node"(macOS/Linux)或"runtimeExecutable": "C:\nodejs\node.exe"(Windows) - 加一行
console.log(process.execPath)对比输出,确保和runtimeExecutable路径一致 - 不要依赖自动生成的配置:默认
"program": "${file}"只适合单文件,实际项目中要改成"program": "${workspaceFolder}/src/index.js",否则断点会灰掉
ES Module 场景下调试失败的真实原因
写了 import express from 'express' 却提示 Cannot use import statement outside a module,不是语法错,是 Node 没认出这是模块文件。
- 必须在项目根目录
package.json中加:"type": "module";不加就默认按 CommonJS 解析 - 文件扩展名得是
.mjs,或者明确声明type,否则node无视import -
launch.json里不能直接指.ts或.jsx源文件——要么编译后指向dist/index.js,要么用runtimeExecutable: "npx"+runtimeArgs: ["ts-node", "src/index.ts"]
node -v 在 VSCode 终端里能跑通之后;之前所有操作,都是在补这个基础事实。路径、环境变量、模块类型、调试器入口——四个点里任意一个没对齐,都会让你卡在“为什么就是不运行”上。

















