快速导航×

在VS Code中配置多目标调试(前端+后端)2025-12-01 20:22:47
通过配置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  # 并为  # 调试器  # 可选  # 翻倍  # 会在  # 一键  # 多个  # 后端  # a  # 浏览器  # vite  # node  # json  # node.js  # 前端  # js  # vscode  # react  # php  # npm  # 罗定网站优化  # 阿里巴巴网站的名称优化  # 台州网站建设北路小学  # SEO北京环球乐园拍照  # 营销双月推广  # 石林快消品营销推广中心  # 网站商城如何引流推广  # 济南网站建设框架设计  # seo优化的优点  # 涉县推广营销中心地址  # 如果你  # 的是 


相关栏目: 【 企业资讯168 】 【 行业动态20933 】 【 网络营销52431 】 【 网络学院91036 】 【 运营推广7012 】 【 科技资讯60970


相关推荐: LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  新手怎么开始学化妆 零基础化妆入门教程  自定义Bag-of-Words实现:处理带负号的词汇权重  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  Pyrogram与g4f集成:异步编程实践与常见错误解决  利用5118提升短视频内容效果_5118短视频关键词优化方法  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  Golang并发任务中错误如何聚合_Golang goroutine error收集方式  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  J*aScript实现单选按钮与关联输入框的联动禁用教程  在低带宽网络下使用VS Code远程开发的配置技巧  C++ string清空内容_C++ clear与empty用法  Python模块化编程:有效管理依赖与避免循环引用  PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract  Golang如何实现简单的Web表单_Golang表单提交与验证处理方法  MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  yandex入口引擎手机版 yandex安卓版下载入口  微信网页版登录教程_微信网页版登录入口在哪  荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程  Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询  C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南  Angular中父组件异步更新子组件复选框状态的实践指南  J*aScript中向JSON对象添加新属性的正确姿势  极兔快递快件信息查询系统 极兔快递官网运单号追踪  Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】  火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧  如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略  Archive of Our Own官网直达 AO3最新可用地址一览  MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  如何在 Excel Online 和 Google 表格中更改日期格式  c++20的std::jthread是什么_c++可中断线程与RAII式管理  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  文本文档写html代码怎么运行_文本文档html代码运行步骤【教程】  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题  Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法  Lar*el递归关系中排除子孙节点的策略  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  理解J*aScript Promise的微任务队列与执行顺序  高德地图沿途添加点失败如何解决 高德多点规划方法  夸克浏览器图书入口 夸克手机浏览器阅读入口  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧