vs code多根工作区中ctrl+p找不到launch.json,因仅读取.code-workspace同级目录下的.vscode/launch.json,不扫描子目录;配置需显式设cwd为${workspacefolder:xxx}且xxx须与.code-workspace中folders项的name或路径末级一致。

Ctrl+P 搜索命令在多根工作区里为什么找不到 launch.json 配置
因为 VSCode 只读取与 .code-workspace 文件同级目录下的 .vscode/launch.json,不会自动扫描各项目子目录里的同名文件。你在前端项目里写的 launch.json,如果没放在工作区根目录下,就根本不会被加载。
- 必须把
launch.json放在.code-workspace所在目录的.vscode/里 - 每个
configuration必须显式设"cwd": "${workspaceFolder:frontend}",其中frontend要和folders数组里对应项的name或路径最后一级完全一致(大小写敏感) -
${workspaceFolder:xxx}中的xxx不是文件夹路径,而是你在.code-workspace里为该文件夹定义的"name"字段值;没写name就默认用路径末尾目录名
Ctrl+Shift+P 里 Workspaces: Open Recent 不显示你刚保存的 .code-workspace 文件
VSCode 的 Workspaces: Open Recent 命令只记录“通过 File > Open Workspace from File… 或双击打开过”的工作区文件,不收录手动新建但未保存、或仅拖拽添加文件夹后未显式保存为 .code-workspace 的临时状态。
- 确认你执行过
File > Save Workspace As…,且保存的是真实.code-workspace文件(不是普通文件夹) - 文件必须有
.code-workspace后缀,且内容是合法 JSON(不能含注释,否则加载失败且无提示) - 首次保存后需关闭并重新打开该工作区一次,它才会进入“最近”列表
- 如果仍不出现,检查
workbench.localHistory.enabled是否为true,该设置影响历史记录持久性
Ctrl+K Ctrl+O 打开文件夹后,资源管理器顶部没显示多个根目录
这是单文件夹模式(Single-folder mode)的典型表现:VSCode 把你当成了只想打开一个项目,而不是构建多根工作区。状态栏左下角没有 [Workspace] 标识,就是最直接的判断依据。
- 不要先用
Ctrl+K Ctrl+O打开某个文件夹,再拖其他文件夹进来——这样只会触发“是否添加到当前工作区”提示,但后续若没保存为.code-workspace,就仍是单根 - 正确做法是从空窗口开始(状态栏显示
No folder opened),再通过Ctrl+Shift+P运行Workspaces: Create Workspace from Folder,并按住Ctrl多选所有项目根路径 - 保存时路径建议用相对路径(如
"path": "../backend"),确保所有项目位于同一父目录下,否则跨机器共享时容易失效
终端快捷键 Ctrl+` 在多根工作区里默认不切换到当前活动文件夹
VSCode 的集成终端默认继承的是工作区根目录,不是你当前正在编辑的文件所属的子项目路径。所以你在后台项目里写代码,新开终端却跑到工作区顶层,npm start 直接报错。
- 新开终端后手动执行
cd backend太容易忘,也违背自动化原则 - 推荐在对应项目根目录下建
.vscode/settings.json,写入"terminal.integrated.cwd": "${workspaceFolder}"—— 这个设置只对该文件夹生效 - 如果想让每个终端自动进入对应项目,需配合扩展如
Terminal Here,原生不支持“按编辑器焦点自动切 cwd” - 注意:
terminal.integrated.cwd是文件夹级设置,不能写在工作区级settings里,否则会覆盖所有根目录
Ctrl+P 搜索范围、Ctrl+Shift+P 命令可用性、Ctrl+` 终端起始路径,全都取决于你是否真正进入了工作区模式,以及配置文件是否放在了 VSCode 实际能识别的位置。最容易被忽略的,是那个左下角不起眼的 [Workspace] 标识,它才是所有行为生效的前提。











