launch.json必须置于项目根目录的.vscode/下才对当前工作区生效;多根工作区需在.code-workspace中配置或为各文件夹单独设置;所有路径须用${workspacefolder}等变量,禁用绝对路径;语法错误、type拼写错误或缺失必要字段会导致配置静默失效。

怎么让 launch.json 真正只作用于当前工作区
VSCode 的调试配置必须放在项目根目录的 .vscode/launch.json 里,而不是用户级或全局位置。只要这个文件存在且语法合法,它就自动成为该工作区的默认调试配置——无需额外启用或注册。
常见错误现象:
- 在用户设置里写
launch相关配置(无效,VSCode 不读) - 把
launch.json放在子目录或src/下(VSCode 找不到,退回到无调试配置状态) - 文件名拼错成
lauch.json或launch.JSON(大小写敏感,Linux/macOS 下直接失效)
多根工作区(.code-workspace)例外:此时应把 launch 配置写在 .code-workspace 文件的 "settings" 字段下,或为每个 "folders" 单独配 .vscode/launch.json。
launch.json 中哪些字段必须用相对路径
硬编码绝对路径是团队协作中最常导致“别人机器上调试失败”的原因。以下字段务必使用 ${workspaceFolder} 或 ${file} 这类变量:
-
"program":例如"${workspaceFolder}/src/index.js",而非/Users/me/project/src/index.js -
"cwd":设为"${workspaceFolder}",确保进程工作目录一致 -
"envFile":如"${workspaceFolder}/.env.local",避免环境变量加载失败 -
"outFiles"(TypeScript):用"${workspaceFolder}/dist/**/*.js",别写死/dist/
注意:${workspaceFolder} 指的是你通过“File → Open Folder”打开的那个根目录,不是 .vscode 所在目录。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
为什么改了 launch.json 却不显示在调试面板里
VSCode 调试面板(Run and Debug)只列出 launch.json 中 "configurations" 数组里的有效条目。容易被忽略的点:
- JSON 语法错误(比如末尾多逗号、单引号、缺引号),VSCode 不报错但静默跳过整个文件
-
"type"值拼错,如写成"nodejs"(正确是"node")或"python3"(正确是"python") - 缺少必要字段:比如
node类型必须有"program",python类型必须有"module"或"program" - 配置项被注释掉但没删干净,例如
// "request": "launch"导致该配置不可用
验证方法:按 Ctrl+Shift+P → 输入 Debug: Select and Start Debugging,看列表是否出现你的配置名;若无,打开命令面板再执行 Developer: Toggle Developer Tools,查 Console 是否有解析警告。
团队共享调试配置时,哪些设置不该提交到 Git
.vscode/launch.json 可以也建议提交,但以下内容必须剔除或参数化:
- 硬编码的本地路径(如
"python.defaultInterpreterPath"—— 这个属于settings.json,不是launch.json的字段) - 个人调试用的临时配置(如
"name": "Debug temp fix") - 含敏感信息的
"env"字段(如 API keys、token),应移入.env并通过"envFile"加载 -
"port"设为固定值(如3000)易冲突,推荐用"port": 0让系统自动分配
真正需要统一的,是启动逻辑本身:比如用 ts-node 启动 TS 文件、带特定 --inspect 参数、预设断点位置。这些才是团队规范的核心。
最常被忽略的一点:调试配置生效依赖对应扩展已启用且版本兼容。比如 Python 调试需要 ms-python.python,Node.js 需要内置的 node-debug2;如果扩展未安装,VSCode 会直接隐藏整个配置,连错误提示都不给。










