当前位置: 首页 > news >正文

VS Code调试Node.js核心 打断点 → F5 → 单步执行 + 看变量 - jerry

下面我用最常见、最实用的方式,带你一步步在 VS Code 调试 Node.js 代码(适合前端 / Node 开发日常用)。


一、最简单方式(推荐新手):直接调试当前 JS 文件

1️⃣ 准备一个 Node 文件

// index.js
function add(a, b) {return a + b;
}const result = add(2, 3);
console.log(result);

2️⃣ 在 VS Code 中打断点

  • 打开 index.js

  • 在行号左侧 点一下(出现红点)
    👉 这就是断点


3️⃣ 启动调试

两种方式任选:

  • 右上角 ▶️ Run

  • 或快捷键

    • macOS:F5

    • Windows:F5

👉 VS Code 会自动识别 Node.js,并启动调试


4️⃣ 常用调试操作

操作按键
继续执行 F5
单步跳过(Step Over) F10
进入函数(Step Into) F11
跳出函数(Step Out) Shift + F11
停止 Shift + F5

二、标准方式:使用 launch.json(真实项目必备)

1️⃣ 打开调试配置

  • 左侧点 Run and Debug

  • 点击 create a launch.json

  • 选择 Node.js


2️⃣ 最常见配置(Node 项目)

{"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Debug Node App","program": "${workspaceFolder}/index.js","cwd": "${workspaceFolder}","console": "integratedTerminal","skipFiles": ["<node_internals>/**"]}]
}

📌 说明:

  • program:入口文件

  • cwd:工作目录

  • skipFiles:跳过 Node 内部代码(很重要)


三、调试 npm scripts(非常常用)

package.json

{"scripts": {"dev": "node src/app.js"}
}

对应的 launch.json

{"type": "node","request": "launch","name": "Debug npm run dev","runtimeExecutable": "npm","runtimeArgs": ["run", "dev"],"console": "integratedTerminal","skipFiles": ["<node_internals>/**"]
}

👉 调试真实项目 80% 都用这个


四、Attach 模式(调试已运行的 Node 进程)

1️⃣ 用 inspect 启动 Node

node --inspect index.js

或:

node --inspect-brk index.js

2️⃣ VS Code attach 配置

{"type": "node","request": "attach","name": "Attach Node","port": 9229,"skipFiles": ["<node_internals>/**"]
}

📌 适合:

  • 服务已经在跑

  • Docker / 远程服务

  • 线上问题复现


五、调试 Express / Koa(后端必会)

示例:Express

app.get('/test', (req, res) => {debugger; // 也可以直接写res.send('ok');
});

📌 访问接口时会自动断下


六、调试技巧(很重要)

✅ 1️⃣ debugger 关键字

debugger;

执行到这里 自动断点


✅ 2️⃣ 变量监控(Watch)

  • 左侧 Watch

  • 输入变量名或表达式

req.body
user.id

✅ 3️⃣ 条件断点

  • 右键断点 → Add Conditional Breakpoint

id === 1001

✅ 4️⃣ 调试 TS(Node + TS)

关键点:

  • 要有 sourceMap: true

  • 断点打在 .ts


七、最常见问题排查

❌ 断点不生效

✔ 检查:

  • 是否是编译后的代码(dist)

  • program 是否正确

  • 是否开启 source map


❌ 一直进 Node 内部源码

✔ 加上:

"skipFiles": ["<node_internals>/**"]

八、一句话总结(记这个就够)

VS Code 调试 Node.js 的核心就是:打断点 → F5 → 单步执行 + 看变量。

http://www.jsqmd.com/news/167668/

相关文章:

  • 详细解析 SYN泛洪
  • Java毕设项目:基于SpringBoot的汽车配件仓储管理系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 项目风险预警:智能分析系统
  • 性价比高的循环水处理口碑好的公司
  • 军用车辆检测数据集介绍-2274张图片 军事侦察监控 卫星图像分析 边境安全防护 军事装备管理 战场态势感知 安全威胁评估
  • 理解机器学习里的NFL定理
  • 五佳降AI工具分享,论文党必收藏
  • 进程,动态库,COM机制关系概述
  • Zed编辑器安装与使用Agent Servers(腾讯CodeBuddy、阿里百炼Qwen Code、DeepSeek Cli)
  • RAG学习笔记 检索优化
  • 【毕业设计】基于SpringBoot的汽车配件仓储管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 降AI率不靠硬改,前五工具更省事
  • 使用illustrator的套索工具提取元素
  • Kingbase-KEMCC配置集群监控纳管ES以及外部备份使用对象存储
  • Java毕设选题推荐:基于SpringBoot+Vue的汽车配件仓储管理系统管理系统设计基于SpringBoot的汽车配件仓储管理系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 【基于LLaMA-Factory通义千问】大模型微调全流程技术解析
  • UDP-N-叠氮乙酰葡萄糖胺二钠盐:糖蛋白化学生物学研究的关键工具
  • AI+SQL生成ER图
  • 从Java全栈开发到云原生实践:一次真实面试的深度记录
  • P5607 [Ynoi2013] 无力回天 NOI2017 题解
  • P5607 [Ynoi2013] 无力回天 NOI2017 题解
  • 【计算机毕业设计案例】基于SpringBoot的学校图书管理系统设计与实现图书管理、借阅记录、审核借阅、图书续借、审核续借、确认归还(程序+文档+讲解+定制)
  • CSDN年度技术趋势预测
  • 官网-城乡居民医疗保险报销政策
  • 去掉手写字上面的表格线
  • LangGraph MultiAgent 智能书籍写作系统
  • 读书笔记9-12.18
  • 读书笔记9-12.18
  • 计算机Java毕设实战-基于SpringBoot的学校图书管理系统设计与实现基于Vue和SpringBoot的图书管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 实操-失业保险金申领