vscode 要真正“懂” node.js,必须配置 jsconfig.json 和安装 @types/node:jsconfig.json 需置于项目根目录以激活项目级语言服务,声明 module/target 以匹配运行时(如 "type": "module" 对应 "esnext");@types/node 提供核心模块类型定义,缺失则 fs.readfile 等 api 无参数提示、无法跳转定义,需 npm install --save-dev @types/node 并确认 node_modules/@types/node/index.d.ts 存在。

VSCode 要真正“懂” Node.js,光装 Node 和插件远远不够——jsconfig.json 和 @types/node 缺一不可,否则 fs.readFile 这类基础 API 就不会出现在补全列表里。
为什么 jsconfig.json 必须放在项目根目录
VSCode 的 JS 语言服务默认只对单文件做语法分析,不解析模块依赖或路径别名。加了 jsconfig.json,它才开始当这是一个完整项目来处理。
- 文件名必须是
jsconfig.json(不是jsconfig.js或.jsconfig.json) - 必须放在你执行
npm init生成package.json的同一级目录 - 内容可以极简,但得是合法 JSON,例如:
{"compilerOptions": {"module": "commonjs", "target": "es2020"}} - 如果项目用了
"type": "module",jsconfig.json里的"module"也得同步改成"esnext",否则路径解析会失败,提示直接消失
@types/node 不装,补全就是半残的
Node.js 自身没内置 TypeScript 类型定义,@types/node 就是它的“说明书”。没有它,VSCode 根本不知道 fs.readFile 第二个参数是 options? 还是 encoding?,更别说跳转到定义了。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 运行
npm install --save-dev @types/node(注意是--save-dev,不是全局安装) - 安装后检查
node_modules/@types/node/index.d.ts是否存在,不存在说明安装失败 - 用 pnpm 的用户要确认
node-linker是hoisted,否则类型文件可能被隔离,VSCode 扫不到 - 第三方库如
express同理,需要额外装@types/express
调试时 runtimeExecutable 不配,断点可能失效
VSCode 默认从 PATH 找 node,但如果你用 nvm 或系统自带多个版本,终端里 node -v 输出的是 v20,而调试器调用的可能是 v16,结果就是断点不触发、process.execPath 打印出的路径和你预期不符。
- 在项目根目录下建
.vscode/launch.json - 显式配置
"runtimeExecutable",比如 macOS 上填/usr/local/bin/node,Windows 上填C:\nodejs\node.exe - 在代码里加
console.log(process.execPath),对比调试输出和终端输出是否一致 - 别依赖 Code Runner 插件跑脚本——它绕过
package.json#type和exports字段,ESM 场景下容易报Cannot use import statement outside a module
最常被忽略的其实是 node_modules 被删后没重装:.gitignore 里排除了它,或者清理磁盘时误删,VSCode 就扫不到任何类型文件,重启也没用,必须 npm install 重新拉下来。










