launch.json是VSCode调试核心配置文件,位于项目根目录.vscode/下,通过“运行→添加配置”自动生成,支持多配置共存,关键字段包括name、type、request、program、args、env等,需注意路径变量、插件匹配、参数格式及sourceMap配置。

VSCode 的 launch.json 是调试功能的核心配置文件,它告诉编辑器“怎么启动、连哪个程序、传什么参数、在哪断点”。配对了,F5 一按就进调试;配错了,可能直接报错或静默失败。
launch.json 从哪来?
它默认位于项目根目录下的 .vscode/launch.json。首次点击「运行 → 添加配置」,VSCode 会自动创建该文件,并根据你当前打开的文件类型(如 Python、Node.js、C++)推荐对应环境的模板。你也可以手动新建 .vscode 文件夹再添加这个文件。
核心字段一看就懂
每个调试配置是一个 JSON 对象,常见字段含义直白实用:
- name:配置名,显示在 VSCode 调试下拉菜单里,比如 “Launch via Node”
-
type:调试器类型,决定用哪个插件干活,如
node、python、cppdbg -
request:请求模式,常用
launch(本地启动)或attach(附加到已有进程) -
program:要调试的主文件路径,支持变量如
${file}(当前打开文件)、${workspaceFolder}(工作区根目录) -
args:命令行参数数组,例如
["--port", "3001"] -
env:启动时注入的环境变量,如
{"NODE_ENV": "development"} -
console:控制台类型,
integratedTerminal最常用,输出和输入都在 VSCode 内置终端里
多配置共存很常见
一个 launch.json 可以定义多个调试项,用 configurations 数组管理。比如一个前端项目可能同时有:
大家都知道,在进行J2EE项目的开发过程中,在调试阶段如果只是修改了页面是不需要重启应用服务器的,比如不需要重启Tomcat。只需要在浏览器中 进行页面刷新即可。其实之所以不用重启Tomcat等应用服务器,其根本原因是因为我们可以在应用服务器的配置文件中设置虚拟目录,这样就可以知道web 项目所在的目录,于是就可以省去打包、然后再重新发布到服务器的步骤。感兴趣的朋友可以过来看看
- 启动开发服务器(Vite/React)
- 调试 Node 后端 API
- Attach 到已运行的 Electron 主进程
切换时只需在 VSCode 顶部调试面板选择对应 name 即可,互不干扰。
容易踩的坑
配置看似简单,但几个细节常导致调试失败:
- 路径写死却没考虑跨平台 —— 推荐用
${workspaceFolder}/src/index.js而非C:/project/src/index.js - type 值拼错或没装对应调试插件 —— 比如写
"type": "py"不生效,得是"python",且需安装 Python 扩展 - args 传参格式不对 —— 字符串数组,不是空格分隔的大字符串;含空格的值要单独成项,如
["--name", "my app"] - 未启用 sourceMap(尤其 TypeScript 或打包后 JS)—— 需在配置中加
"sourceMaps": true并确保编译产物带 map 文件
基本上就这些。不需要背全字段,记住 type、request、program 三个骨架,再按需加 args 或 env,调试就跑起来了。









