通过配置vscode的launch.json可实现多环境调试。1. 使用env字段设置不同环境变量,如node_ENV区分开发、测试、生产环境;2. 利用configurationVariables和inputs定义可选参数,通过下拉菜单动态选择环境,减少配置重复;3. 可调用npm scripts复用现有启动命令,保持调试与运行一致。合理组织配置提升开发效率。

在使用 VSCode 进行开发时,配置 launch.json 是实现高效调试的核心手段。尤其在项目需要支持多个运行环境(如开发、测试、生产)时,合理组织调试配置能极大提升开发效率。下面介绍如何通过 .vscode/launch.json 实现多环境调试。
理解 launch.json 的基本结构
launch.json 文件位于项目根目录下的 .vscode 文件夹中,用于定义调试会话的启动参数。一个典型的配置包含以下关键字段:
- name:调试配置的名称,显示在 VSCode 调试面板中
- type:调试器类型,如
node、python、pwa-node等 - request:请求类型,
launch表示启动程序,attach表示附加到已运行进程 - program:要运行的入口文件路径
- env:环境变量,可用来区分不同运行环境
- args:传递给程序的命令行参数
通过为不同环境设置独立的 env 或 args,就能实现多环境切换。
使用环境变量区分运行环境
最常见的做法是利用 env 字段注入不同的环境标识。例如,在 node.js 项目中:
{ “version”: “0.2.0”, “configurations”: [ { “name”: “Dev Server”, “type”: “node“, “request”: “launch”, “program”: “${workspaceFolder}/app.js”, “env”: { “NODE_ENV”: “development”, “API_BASE_URL”: “https://api.dev.example.com” } }, { “name”: “Test Server”, “type”: “node”, “request”: “launch”, “program”: “${workspaceFolder}/app.js”, “env”: { “NODE_ENV”: “test”, “API_BASE_URL”: “https://api.test.example.com” } }, { “name”: “Production Simulation”, “type”: “node”, “request”: “launch”, “program”: “${workspaceFolder}/app.js”, “env”: { “NODE_ENV”: “production”, “API_BASE_URL”: “https://api.example.com” } } ] }
代码中可通过 process.env.NODE_ENV 判断当前环境,加载对应配置。
结合 configurationVariables 实现更灵活控制
如果多个配置重复度高,可以通过自定义变量减少冗余。VSCode 支持在 launch.json 中使用 configurationVariables 动态替换值:
{ “version”: “0.2.0”, “configurations”: [ { “name”: “Run with ${input:envName}”, “type”: “node”, “request”: “launch”, “program”: “${workspaceFolder}/app.js”, “env”: { “NODE_ENV”: “${input:nodeEnv}”, “API_BASE_URL”: “${input:apiUrl}” } } ], “inputs”: [ { “type”: “pickString”, “id”: “envName”, “description”: “select environment”, “options”: [“Development”, “Testing”, “Production”], “default”: “Development” }, { “type”: “pickString”, “id”: “nodeEnv”, “options”: [ { “label”: “Development”, “value”: “development” }, { “label”: “Testing”, “value”: “test” }, { “label”: “Production”, “value”: “production” } ], “default”: “development” }, { “type”: “pickString”, “id”: “apiUrl”, “options”: [ { “label”: “Dev API”, “value”: “https://api.dev.example.com” }, { “label”: “Test API”, “value”: “https://api.test.example.com” }, { “label”: “Prod API”, “value”: “https://api.example.com” } ], “default”: “https://api.dev.example.com” } ] }
这样只需维护一个调试配置,通过下拉菜单选择环境,避免重复定义。
调试脚本与 npm scripts 协同工作
若项目使用 npm scripts 启动不同环境,也可在 launch.json 中调用脚本:
{ “name”: “npm run dev”, “type”: “node”, “request”: “launch”, “runtimeExecutable”: “npm”, “runtimeArgs”: [“run”, “dev”], “console”: “integratedTerminal” }
这种方式适合已有成熟脚本体系的项目,调试时直接复用现有命令,保持行为一致。
基本上就这些。通过合理配置 launch.json,你可以轻松在不同环境间切换调试,无需手动修改代码或环境变量。关键是根据项目实际需求选择合适的方式:简单项目用多个独立配置,复杂项目可结合 input 变量提升灵活性。


