launch.json 是 VSCode 调试核心,通过配置 version、configurations、name、type、request 等字段定义调试行为,结合 program、args、cwd、env 控制启动环境,支持 preLaunchTask 自动构建、attach 模式附加进程、autoAttachChildProcesses 调试子进程,并可利用条件断点与日志点优化调试效率。

Visual Studio Code 的调试功能强大且灵活,核心在于 launch.json 文件的正确配置。这个文件决定了调试器如何启动、附加到进程、传递参数、设置环境变量等。掌握其结构和关键字段,能极大提升开发效率,尤其是面对复杂项目或跨语言场景时。
理解 launch.json 基本结构
该文件位于项目根目录下的 .vscode/launch.json。每个调试配置都是一个 JSON 对象,包含多个属性来控制调试行为。
- version:指定 schema 版本,通常为 "0.2.0"
- configurations:包含多个调试配置的数组,可在 VSCode 调试面板中选择
- name:配置的显示名称,出现在调试下拉菜单中
- type:调试器类型,如 "node"、"python"、"cppdbg"、"chrome" 等
- request:请求类型,"launch" 表示启动新进程,"attach" 表示附加到已有进程
精准控制程序启动方式
通过调整 program、args 和 cwd,可以精确模拟运行环境。
- program:指定入口文件路径,常配合变量如 ${workspaceFolder} 使用
- args:传递命令行参数,例如 ["--port", "3000"]
- cwd:设置工作目录,影响相对路径解析和环境加载
- env:定义环境变量,对配置 API 密钥或切换模式很有用
- runtimeExecutable:自定义运行时,比如使用特定版本的 Python 或 Node
高效使用预启动任务与自动附加
调试前自动构建代码,或在服务启动后自动连接,减少手动操作。
- preLaunchTask:指定在启动调试前执行的任务,需在 tasks.json 中定义
- processId:用于 attach 模式,动态传入目标进程 ID
- autoAttachChildProcesses:启用后,子进程也会被自动调试(Node.js 支持)
- restart:程序退出后是否自动重启,适合监听模式开发
利用条件断点与日志点提升效率
避免在循环中频繁中断,用高级断点减少干扰。
- 在断点上右键可设置条件,仅当表达式为真时暂停
- 设置,例如每 10 次执行中断一次
- 使用日志点代替断点,输出信息到调试控制台而不中断执行
- 结合 console.log 格式化输出变量值,类似 {variableName}
基本上就这些。合理配置 launch.json 不仅能让调试更顺畅,还能适应多种运行场景。关键是根据实际需求组合使用各项参数,避免盲目复制模板。调试配置虽小,但细节决定效率。










