新闻中心

在VS Code中配置多目标调试(前端+后端)

2025-12-01
浏览次数:
返回列表
通过配置VS Code的复合启动功能,可一键调试全栈应用。1. 确保项目结构包含前端和后端子目录,并使用支持调试的框架;2. 在.vscode/launch.json中定义前后端调试配置,前端通过Chrome调试器连接3000端口,后端以Node.js调试模式启动server.js;3. 使用compounds将多个配置合并为“Debug Full Stack”;4. 安装Chrome或Edge调试扩展;5. 启动时选择“Debug Full Stack”并运行,VS Code将同时启动前后端进程并支持断点调试;6. 可选地通过npm script统一管理启动流程,提升调试一致性与便捷性。

在vs code中配置多目标调试(前端+后端)

在开发全栈应用时,经常需要同时调试前端和后端。VS Code 支持通过 复合启动配置 实现多目标调试,让你一键启动并调试前后端两个进程。

1. 确保项目结构支持多环境调试

典型的项目结构如下:

my-app/
├── .vscode/
│   └── launch.json
├── frontend/
│   ├── package.json      // 含 "start": "react-scripts start"
│   └── src/
├── backend/
│   ├── package.json      // 含 "dev": "nodemon server.js"
│   └── server.js

确保前端使用如 Create React App、Vite 等支持调试的框架,后端使用 Node.js + 源码映射(source maps)。

2. 配置 launch.json 支持多进程调试

.vscode/launch.json 中定义多个调试配置,并用复合配置组合它们:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Frontend",
      "type": "chrome",
      "request": "launch",
      "url": "http://localhost:3000",
      "webRoot": "${workspaceFolder}/frontend/src",
      "sourceMapPathOverrides": {
        "webpack:///src/*": "${workspaceFolder}/frontend/src/*"
      }
    },
    {
      "name": "Launch Backend",
      "type": "node",
      "request": "launch",
      "program": "${workspaceFolder}/backend/server.js",
      "cwd": "${workspaceFolder}/backend",
      "console": "integratedTerminal",
      "outFiles": [
        "${workspaceFolder}/backend/**/*.js"
      ],
      "autoAttachChildProcesses": true
    }
  ],
  "compounds": [
    {
      "name": "Debug Full Stack",
      "configurations": ["Launch Backend", "Launch Frontend"]
    }
  ]
}

说明:

  • Launch Frontend:使用 Chrome 调试器连接运行在 3000 端口的前端应用。
  • Launch Backend:以调试模式启动 backend/server.js,通常配合 nodemon 或直接使用 node --inspect。
  • compounds:将多个配置合并为一个操作。“Debug Full Stack” 会同时启动前后端调试会话。

3. 安装并配置浏览器调试扩展

确保已安装 Debugger for Chrome 或使用新版 VS Code 内建的 Edge/Chrome 调试支持。若使用其他浏览器,请安装对应调试工具。

如果你使用的是基于 Chromium 的浏览器,上面的 type: "chrome" 可正常工作。也可改为 "type": "msedge" 或使用 browser: "chrome" 显式指定。

Narration Box Narration Box

Narration Box是一种语音生成服务,用户可以创建画外音、旁白、有声读物、音频页面、播客等

Narration Box 68 查看详情 Narration Box

4. 启动多目标调试

打开 VS Code 的调试面板,选择启动配置为 Debug Full Stack,点击“运行”按钮或按 F5。

  • VS Code 会在集成终端中启动后端服务(需确保 nodemon 或 node 已安装)。
  • 自动打开 Chrome 调试前端,加载 http://localhost:3000。
  • 你可以在前后端代码中设置断点,调试器会在命中时暂停。

提示: 若前端未自动打开浏览器,检查是否已运行前端服务。也可将前端服务也通过 console: "integratedTerminal" 启动,使用 runtimeExecutable 调用 npm。

5. 可选:通过 npm script 统一管理

可在 compound 中直接调用 npm script,简化流程:

{
  "name": "Start Frontend with npm",
  "type": "node",
  "request": "launch",
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run", "start"],
  "cwd": "${workspaceFolder}/frontend",
  "console": "integratedTerminal"
}

这样就不依赖外部启动服务,所有内容都在 VS Code 控制之下。

基本上就这些。配置一次后,每次调试只需选中复合配置,一键启动整个应用。不复杂但容易忽略细节,比如路径映射或端口冲突。确保前后端服务端口不冲突,且源码路径正确映射,调试体验就很顺畅。

以上就是在VS Code中配置多目标调试(前端+后端)的详细内容,更多请关注php中文网其它相关文章!


# java  # php  # a  # 浏览器  # npm  # vite  # node  # json  # node.js  # 前端  # js  # vscode  # react  # 罗定网站优化  # 阿里巴巴网站的名称优化  # 台州网站建设北路小学  # SEO北京环球乐园拍照  # 营销双月推广  # 石林快消品营销推广中心  # 网站商城如何引流推广  # 济南网站建设框架设计  # seo优化的优点  # 涉县推广营销中心地址  # 如果你  # 的是  # 并为  # 调试器  # 可选  # 翻倍  # 会在  # 一键  # 多个  # 后端 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 微信网页版登录教程_微信网页版登录入口在哪  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  J*aScript:在map操作中高效处理空数组  将HTML动态表格多行数据保存到Google Sheet的教程  Linux如何构建多环境配置管理_Linux多环境配置方案  如何将HTML表格多行数据保存到Google Sheets  AO3中文官网链接_AO3网页版稳定镜像站  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  蛙漫移动版在线看 蛙漫手机浏览器直达入口  composer 和 npm/yarn 在管理依赖方面有什么核心思想差异?  Mac怎么查看崩溃日志_Mac控制台错误报告分析  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  c++ 获取系统当前时间 c++时间戳获取方法  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  必由学官网入口 必由学教师登录入口  Angular Material 垂直步进器:实现底部到顶部排序的教程  Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践  Shopware订单对象中获取产品自定义字段的正确方法  格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施  AngularJS $http POST请求数据传递与Go后端接收实践  Spring Boot嵌入式服务器与J*a EE:功能支持深度解析  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  解决Python单元测试中Mock异常方法调用计数为零的问题  Lar*el Excel导入时生成自定义递增ID的策略与实践  J*aScript数组对象转换:按指定键分组与值收集  win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】  使用J*aScript检测输入元素是否包含在特定类中  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  利用Bokeh CustomJS动态控制DataTable列可见性  win11 arm版怎么安装 M1/M2 Mac虚拟机安装ARM win11的方法  HTML长属性值处理:表单action路径优化与代码规范应对  高德地图沿途添加点失败如何解决 高德多点规划方法  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  照顾宝贝2小游戏免费秒玩入口  J*a最大堆Heapify方法修复:索引计算与边界条件深度解析  Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法  在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全  J*aScript map 方法中处理循环元素为空数组的策略  Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】  小红书网页版入口链接分享 小红书官网直接进  ArrayList与LinkedList操作复杂度详解:遍历与修改  C++ map遍历方法大全_C++ map迭代器使用总结  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网 

搜索