答案:在vscode中通过配置launch.json可管理多个调试环境,支持不同程序、参数及运行条件的快速切换。具体包括创建launch.json文件并添加多个调试配置,如主程序、测试用例和进程附加;利用变量提升灵活性,如${workspaceFolder}、${input:portNumber}实现动态输入;通过name命名、注释说明、preLaunchTask构建任务等方式组织配置,提升多项目或多环境下的调试效率。保存后可在“运行和调试”面板选择对应配置启动调试。

在 VSCode 中,调试多个项目或不同运行环境时,可以通过配置 launch.json 文件来创建和管理多个调试配置。这样你可以快速切换不同的启动方式,比如调试主程序、测试用例、特定脚本或不同参数的运行场景。
创建调试配置文件
VSCode 的调试配置保存在工作区的 .vscode/launch.json 文件中。如果还没有这个文件,可以按以下步骤创建:
- 打开 VSCode 的“运行和调试”视图(快捷键 Ctrl+Shift+D)
- 点击“创建一个 launch.json 文件”链接
- 选择你的环境(如 node.js、python、C# 等)
- VSCode 会生成一个基础的 launch.json 文件
生成后,你可以在 .vscode/launch.json 中看到类似结构:
{ "version": "0.2.0", "configurations": [ { "name": "Launch Program", "type": "node", "request": "launch", "program": "${workspaceFolder}/index.js" } ] }
添加多个调试配置
在 configurations 数组中添加多个对象,每个对象代表一个独立的调试配置。例如,你可能需要调试主应用和单元测试:
{ "configurations": [ { "name": "启动主程序", "type": "node", "request": "launch", "program": "${workspaceFolder}/app.js", "env": { "NODE_ENV": "development" } }, { "name": "运行测试", "type": "node", "request": "launch", "program": "${workspaceFolder}/test/test.js", "console": "integratedTerminal" }, { "name": "附加到进程", "type": "node", "request": "attach", "port": 9229 } ] }
保存后,在“运行和调试”面板顶部的下拉菜单中就可以选择不同的配置来启动调试。
使用变量提升灵活性
VSCode 支持多种预定义变量,让配置更通用:
- ${workspaceFolder}:当前工作区根目录
- ${file}:当前打开的文件
- ${env:NAME}:引用系统环境变量
- ${input:promptName}:调用用户输入(配合 inputs 字段)
例如,动态传入端口:
{ "configurations": [ { "name": "启动服务(指定端口)", "type": "node", "request": "launch", "program": "${workspaceFolder}/server.js", "args": ["--port", "${input:portNumber}"] } ], "inputs": [ { "id": "portNumber", "type": "promptString", "description": "请输入端口号:", "default": "3000" } ] }
管理与组织配置
当配置较多时,可通过以下方式提升可维护性:
- 为每个配置设置清晰的 name,便于识别
- 使用注释(JSON 允许非标准注释)说明用途
- 结合 cwd 字段控制运行目录
- 通过 preLaunchTask 指定构建任务(如编译 typescript)
示例:
{ "name": "启动编译后应用", "type": "node", "request": "launch", "program": "${workspaceFolder}/dist/index.js", "preLaunchTask": "build", "cwd": "${workspaceFolder}" }
基本上就这些。合理组织 launch.json 能显著提升开发效率,特别是多模块或多环境项目中。调试配置不复杂但容易忽略细节,比如路径或环境变量设置。改完配置记得保存,VSCode 会自动识别更新。基本上就这些。


