能跑 node -v 且调试器能断点,才算配好——其余全是锦上添花;VSCode 找不到 node 命令本质是未继承系统环境,须先在系统终端验证 node -v/npm -v 输出版本号,Windows 需勾选 Add to PATH 并避开空格/中文路径,macOS/Linux 用 nvm 时应将 source ~/.nvm/nvm.sh 写入 ~/.zsh_profile,改完环境变量后必须完全退出并重启 VSCode。

能跑 node -v 且调试器能断点,才算配好——其余全是锦上添花。
VSCode 找不到 node 命令?先确认系统终端是否真可用
这不是 VSCode 的 bug,而是它压根没继承到你的 node 环境。必须在系统终端(不是 VSCode 内置终端)里执行:
-
node -v和npm -v都要输出版本号 - Windows 用户:安装时没勾选 Add to PATH 是最大雷区;路径含空格或中文(如
C:\Program Files\nodejs或D:\软件\nodejs)会导致npm静默失败 - macOS/Linux 用户:用
nvm的,得确保source ~/.nvm/nvm.sh已写入~/.zsh_profile(login shell 读这个),而不是只放在~/.zshrc里 - 改完环境变量后,必须完全退出 VSCode 并重启,否则内置终端仍读不到新 PATH
别信 Code Runner,用内置终端跑脚本才靠谱
code-runner 插件默认命令太简陋,绕过项目上下文,尤其在 ESM 场景下直接报 Cannot use import statement outside a module。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 想支持
import?确保项目根目录package.json有"type": "module",然后在 VSCode 设置里搜code-runner.executorMap,把javascript对应值改成:node --experimental-specifier-resolution=node $fileName - Windows 下中文乱码?加
-r utf-8:node -r utf-8 $fileName - 遇到
process.stdin就卡住?code-runner不支持交互式输入,换用Ctrl+`打开内置终端手动执行node index.js - 正式开发中建议禁用
code-runner,只用它快速验证单文件逻辑
调试时断点不命中?launch.json 里漏了关键配置
VSCode 自带 Node.js 调试能力,不需要额外插件。但默认生成的 launch.json 在多 Node 版本、ESM、热重载等场景下极易失效。
- 本地有多个 Node 版本(比如用
nvm或volta)?必须在launch.json的configurations里显式写:"runtimeExecutable": "/path/to/your/node"(macOS/Linux 示例:/Users/you/.nvm/versions/node/v18.17.0/bin/node;Windows 示例:C:\nodejs\node.exe) - 想调试
npm start?把"program"改成"npm",加"args": ["start"]和"console": "integratedTerminal",否则看不到输出 - 用
nodemon?不能直接在program里调它——调试器不支持热替换,要用attach模式:先终端运行nodemon --inspect-brk index.js,再在launch.json中配"type": "node"、"request": "attach"、"port": 9229 - 验证是否生效:在代码里加
console.log(process.execPath),对比终端输出和调试器里打印的路径是否一致
自动补全/跳转失效?不是 Node 环境问题,是语言服务没认出项目
即使 node 和 npm 都正常,JS/TS 的智能提示也可能挂掉——VSCode 没识别出这是个 Node.js 项目。
- 新建 JS 项目,必须在根目录放
jsconfig.json,内容至少含:{"compilerOptions": {"allowJs": true, "checkJs": false}} - 用 TypeScript?必须有
tsconfig.json,且"compilerOptions"里至少设"target"和"module" - 禁用所有“增强 JS 支持”的第三方插件——VSCode 内置的 JavaScript 和 TypeScript 语言服务已足够,插件冲突反而导致跳转失败
- 如果用了
"type": "module",确保文件扩展名是.mjs或package.json显式声明,否则node仍按 CommonJS 解析,类型推导会错乱
最常被忽略的点:VSCode 启动方式决定它能不能读到 shell 初始化文件。macOS/Linux 用户从 Dock 启动 VSCode,它根本不会加载 ~/.zshrc;Windows 用户装 Node 时漏勾 PATH,后续所有操作都建立在沙上。环境变量这一步没走稳,后面越配越迷。

















