VSCode的launch.json文件配置详解

发布时间 - 2025-12-13 00:00:00    点击率:
launch.json是VSCode调试配置核心文件,首次调试时自动生成于.vscode/目录,为JSON数组结构,含version、configurations等必填字段,支持多配置共存与语言特化设置。

VSCode 的 launch.json 是调试配置的核心文件,它告诉 VSCode 如何启动调试器、加载哪些程序、传什么参数、是否附加到进程等。配置写对了,调试才顺;写错了,常报 “Could not find program” 或 “No configuration” 这类错误。

launch.json 从哪来?基本结构长什么样

这个文件默认不存在,首次点击「运行 → 启动调试」或按 Ctrl+Shift+D 后点齿轮图标,VSCode 会自动在项目根目录的 .vscode/launch.json 下生成模板。它本质是一个 JSON 数组,每个对象代表一个可选的调试配置(即“启动配置”),通过 name 字段区分。

最小可用配置示例(以 Node.js 为例):

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["/**"],
      "program": "${workspaceFolder}/index.js"
    }
  ]
}

关键字段说明:

  • version:固定为 "0.2.0",是 VSCode 调试协议版本,别改
  • configurations:必填数组,每个对象是一个调试入口
  • type:调试器类型,如 "node""python""cppdbg",需对应已安装的扩展
  • request:取值为 "launch"(启动新进程)或 "attach"(附加到已有进程)
  • name:调试启动项的显示名,在调试侧边栏下拉菜单中可见
  • program:要调试的主文件路径(launch 模式必需)

常见调试场景对应的关键配置项

不同语言和需求,核心字段差异明显。以下是最常遇到的几类:

  • Python 脚本调试:确保装了 Python 扩展;type: "python"module 可代替 program 运行包(如 "module": "http.server");console 设为 "integratedTerminal" 可在终端中交互输入
  • 前端项目(Chrome 调试):装好 Debugger for Chrome 扩展;type: "pwa-chrome"url 指向本地服务地址(如 "http://localhost:3000");webRoot 告诉调试器源码根目录,用于断点映射
  • 附加到已运行的 Node 进程:设 request: "attach"port 对应 Node 启动时加的 --inspect=9229address 可选填 IP(默认 localhost)
  • 带参数或环境变量启动:用 args 数组传命令行参数(如 ["--port", "4000"]);用 env 对象设环境变量(如 {"NODE_ENV": "development"}

实用技巧与易错点提醒

很多问题不是配置不会写,而是细节没注意:

  • 路径必须用变量表达:硬写绝对路径(如 "C:/project/index.js")会导致协作失效;统一用 ${workspaceFolder}${file}${fileBasenameNoExtension} 等预定义变量
  • 多个配置共存没问题:一个 launch.json 可同时定义 “启动后端”、“启动前端”、“Attach 到 Docker 容器” 等多个 configuration,切换靠顶部下拉菜单
  • 调试器不识别 type?先检查扩展:比如 "type": "go" 报错,大概率是没装 Go 扩展;"type": "pwa-msedge" 需装 Edge DevTools 扩展
  • 断点不命中?看 sourcemap 和 webRoot:Vue/React 构建后代码被压缩或转译,必须配对 sourceMaps: true 和正确的 webRoot,否则断点打在打包后文件上无效

基本上就这些。launch.json 不复杂但容易忽略变量和扩展依赖,配一次、理清逻辑,后续调试就能省掉大半手动操作。


# vue  # react  # python  # vscode  # js  # 前端  # node.js  # json  # node  # go  # docker 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: nodejs redis 发布订阅机制封装实现方法及实例代码  nginx修改上传文件大小限制的方法  简历在线制作网站免费版,如何创建个人简历?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  用v-html解决Vue.js渲染中html标签不被解析的问题  Windows Hello人脸识别突然无法使用  bootstrap日历插件datetimepicker使用方法  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何在Windows虚拟主机上快速搭建网站?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel如何使用Telescope进行调试?(安装和使用教程)  PHP正则匹配日期和时间(时间戳转换)的实例代码  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何在宝塔面板中修改默认建站目录?  如何快速搭建自助建站会员专属系统?  香港网站服务器数量如何影响SEO优化效果?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何快速查询网址的建站时间与历史轨迹?  北京网站制作的公司有哪些,北京白云观官方网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何用y主机助手快速搭建网站?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  昵图网官方站入口 昵图网素材图库官网入口  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何使用Livewire构建动态组件?(入门代码)  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel如何为API生成Swagger或OpenAPI文档  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Python函数文档自动校验_规范解析【教程】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  php结合redis实现高并发下的抢购、秒杀功能的实例  零基础网站服务器架设实战:轻量应用与域名解析配置指南  装修招标网站设计制作流程,装修招标流程?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  如何实现javascript表单验证_正则表达式有哪些实用技巧  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  HTML 中动态设置元素 name 属性的正确语法详解  Bootstrap整体框架之CSS12栅格系统