launch.json是VS Code中配置调试会话的核心文件,位于项目根目录的.vscode文件夹下,通过version和configurations字段定义调试配置;每个配置包含name、type、request等关键字段,支持launch(启动)和attach(附加到进程)两种模式,配合cwd、env、args等设置运行环境与参数,并利用${workspaceFolder}等变量实现路径动态替换,提升调试效率。

在 VS Code 中,launch.json 是用于配置调试会话的核心文件。它允许你定义程序如何启动、使用哪个运行时、传入什么参数、是否附加到进程等。这个配置文件位于项目根目录下的 .vscode 文件夹中,是实现高效调试的关键。
launch.json 基本结构
每个 launch.json 文件包含一个顶层对象,其中最主要的字段是 version 和 configurations,后者是一个调试配置的数组。
示例基本结构:{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Node App",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/app.js"
}
]
}
- version:指定配置文件格式版本,目前固定为 "0.2.0"
- configurations:调试配置列表,可定义多个,VS Code 调试面板中可选择
核心配置项详解
每个配置对象包含若干关键字段,决定调试行为。
- name:配置的名称,显示在 VS Code 调试下拉菜单中,可自定义
- type:调试器类型,如 node(Node.js)、python、cppdbg(C++)、php 等,必须与已安装的调试扩展匹配
-
request:请求类型,有两种:
- launch:启动并调试程序
- attach:附加到正在运行的进程
- program:要运行的主程序入口文件路径,常配合变量使用,如 ${workspaceFolder}/index.js
- args:传递给程序的命令行参数数组,例如 ["--port", "3000"]
- cwd:程序运行时的工作目录,默认为 ${workspaceFolder}
- env:设置环境变量,以键值对形式提供,如 {"NODE_ENV": "development"}
- runtimeExecutable:指定运行时可执行文件,如使用特定版本的 node 或 python
- stopOnEntry:设为 true 时,程序启动后立即暂停在入口处
-
console:控制程序输出终端类型,常见值有:
- integratedTerminal:在 VS Code 内置终端运行
- internalConsole:使用调试专用控制台(不支持输入)
- externalTerminal:在外部终端窗口运行
常用变量说明
VS Code 提供一系列预定义变量,可在配置中动态替换路径和值。
- ${workspaceFolder}:当前打开的项目根目录
- ${file}:当前打开的文件完整路径
- ${fileBasename}:当前文件名(含扩展名)
- ${fileDirname}:当前文件所在目录
- ${command:commandID}:调用某个命令的返回值,如获取用户输入
- ${env:NAME}:引用系统环境变量,如 ${env:PATH}
"program": "${workspaceFolder}/src/server.js",
"cwd": "${fileDirname}",
"env": { "DEBUG": "app*" }
附加到进程(Attach)配置示例
当你需要调试已经运行的服务(如 Node.js 服务),可以使用 attach 模式。
{
"name": "Attach to Process",
"type": "node",
"request": "attach",
"port": 9229,
"restart": true
}
多语言支持与扩展依赖
launch.json 的 type 字段依赖于已安装的调试扩展:
- Node.js:内置支持
- Python:需安装 Python 扩展(由 Microsoft 提供)
- C++:需安装 C/C++ 扩展
- PHP:需安装 PHP Debug 扩展
基本上就这些。合理配置 launch.json 可大幅提升调试效率,避免重复命令行操作。虽然结构灵活,但核心逻辑统一:指定运行环境、入口、参数和调试方式。熟悉常用字段和变量后,大多数场景都能应对。










