唯一可靠方式是创建并保存.code-workspace文件:从空窗口启动→ctrl+shift+p运行“workspaces: create workspace from folder”→多选项目根目录→保存为相对路径的xxx.code-workspace→确保状态栏显示[workspace]。

VSCode 没有“项目”概念,只有“工作区”;多项目管理必须用 .code-workspace 文件显式创建并保存,否则所有添加操作都是临时的、关窗即丢。
怎么创建真正能复用的 .code-workspace 文件
从空窗口开始是硬性前提:状态栏显示 No folder opened,不能先打开某个文件夹再加其他目录。否则 launch.json、终端路径、已打开标签页等上下文大概率丢失。
- 推荐用命令面板:
Ctrl+Shift+P→ 输入Workspaces: Create Workspace from Folder→Ctrl多选所有根目录(如./frontend,./backend,../shared) - 保存时路径建议用相对路径(如
"path": "../backend"),且.code-workspace文件必须放在所有子项目共同父目录下,否则路径失效 - 保存后左下角状态栏必须显示
[Workspace],资源管理器顶部列出多个独立文件夹名——这是唯一可信的启用标志 - 别把
.code-workspace文件丢进某个子项目里(比如塞进backend/.vscode/),它得独立存在,和所有子项目平级
settings 配置为什么总不生效
工作区级 settings 是覆盖层,不是继承层。它只影响你明确写进去的字段,其余设置仍走各自子项目下的 .vscode/settings.json 或用户级设置。
-
editor.tabSize这类通用项适合放.code-workspace的settings字段里;但python.defaultInterpreterPath这种强路径依赖项,必须写在backend/.vscode/settings.json里才对 backend 生效 -
files.exclude一旦声明,就作用于所有根文件夹;而eslint.packageManager没写进去,各项目仍按自己.vscode/settings.json中的值运行 - 手动编辑
.code-workspace后保存,所有注释会被清空,缩进强制变为 2 空格——别指望保留手写说明 - 检查是否在
.code-workspace的顶层写了settings,而不是嵌套在某个folders对象里
launch.json 和终端路径为什么总错
VSCode 只读取与 .code-workspace 文件同级目录下的 .vscode/launch.json,不会扫描子项目内部的同名文件。终端默认工作目录也不是工作区根,而是“当前活动文件所在文件夹”。
- 把
.vscode/launch.json放在my-team.code-workspace所在目录下,不是放在backend/或frontend/里 - 每个
configuration必须显式指定"cwd": "${workspaceFolder:backend}",其中backend必须和folders数组中对应项的path最后一级目录名完全一致(如"path": "./backend"→ 变量用${workspaceFolder:backend}) - 新开终端默认路径不可靠,右键终端标签页 →
在特定文件夹中创建终端,手动选目标子项目目录 - 若依赖
.env文件,要用"envFile": "${workspaceFolder:web-client}/.env.local",不能写./web-client/.env.local这种相对路径
AI 编程插件在多项目中为什么乱引用
AI 工具比传统编辑器更依赖工作区边界——它需要知道当前代码的语义边界、技术栈约束、团队约定。当工作区未隔离或配置错位时,AI 的“记忆”就变成一锅乱炖。
- 实测数据:未做工作区隔离的多项目场景下,AI 生成代码的上下文引用错误率达 37%,其中 62% 直接源于路径混淆或依赖版本错配
-
extensions字段只支持recommendations,无法按文件夹启用/禁用插件;真要隔离,得右键资源管理器中某文件夹 →Configure Extension Settings - 不同项目混用同一窗口但未建工作区,AI 可能用前端 Vue 的
v-model语法生成 Java 的@RequestBody校验逻辑 - 调试多个服务时,
launch.json中漏掉cwd或写错 workspaceFolder 变量名,会导致 AI 在补全时误判当前执行上下文
最常被忽略的一点:工作区不是“加了文件夹就完事”,而是“保存后才算开始”。只要没看到状态栏的 [Workspace],所有配置都只是草稿。











