launch.json是VS Code项目级调试配置文件,存于.vscode/下,定义启动方式、环境变量等;核心字段包括type、request、name、program、args、env;配置错误会导致断点失效等问题。

VS Code 的调试能力非常强大,但真正用起来顺手,关键不是点“开始调试”按钮,而是理解 launch.json 这个配置文件——它才是调试行为的“总开关”。没配对,断点不生效、变量看不到、程序起不来,都是常事。
launch.json 是什么,为什么绕不开
它是 VS Code 项目级的调试配置文件,存放在 .vscode/launch.json 下。VS Code 不会自动猜你想怎么跑代码:是直接执行 Python 脚本?还是 attach 到一个已运行的 Node.js 进程?是否要传命令行参数?环境变量设哪些?这些全靠它定义。没有它,调试器连“启动方式”都不知道。
生成方式很简单:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Debug: Open launch.json,选对应环境(如 Python、Node.js、Go),VS Code 就会自动生成一个基础模板。
核心字段一学就会
一个典型配置里,这几个字段最常用也最关键:
-
type:调试器类型,比如
python、node、go,必须和已安装的调试扩展匹配 -
request:取值通常是
launch(启动新进程)或attach(连接已有进程),别写反 -
name:调试配置的名字,会显示在 VS Code 顶部的调试下拉菜单里,建议起得具体点,比如
Launch server.py with --debug -
program(Python/Node 常用):要运行的入口文件路径,支持相对路径,如
"${workspaceFolder}/src/main.py" -
args:命令行参数数组,例如
["--port", "8080", "--env", "dev"] -
env:环境变量对象,比如
{"PYTHONPATH": "${workspaceFolder}/lib"},注意变量值里可用${...}变量语法
常见问题现场解决
断点灰色、控制台没输出、提示 “Cannot launch program”?大概率是这几个地方出错了:
- 检查
program路径是否存在、拼写是否正确,特别是大小写和斜杠方向(Windows 用/或\\都行,但别混用) - 确认已安装对应语言的调试扩展(如 Python 扩展含 debugpy;Node.js 需装官方 “Debugger for Edge” 或 “JavaScript Debugger”)
- 如果用
attach模式,确保目标进程已启动且开启了调试端口(如 Node 加了--inspect=9229) - 多配置时,务必在 VS Code 顶部调试下拉菜单中选对
name,否则点错就白忙活
进阶技巧让调试更省心
小改动,效率翻倍:
- 用
preLaunchTask自动构建:比如调试前先执行npm run build,避免手动编译遗漏 - 加
console:"integratedTerminal",让程序输出直接在 VS Code 终端里跑,方便看日志、输交互内容 - 设置
justMyCode:false(Python)可进入标准库源码调试;skipFiles(Node)跳过 node_modules,聚焦业务逻辑 - 多个
configurations可共存,比如一个本地开发,一个连接测试服务器,切换即用
基本上就这些。launch.json 看似是配置文件,实则是你和调试器之间的“协议说明书”。配清楚,调试就从玄学变确定性操作。










