多文件夹工作区需满足:标题栏显示“工作区”或多个文件夹名,资源管理器顶部有多个并列根目录标签;若仅显示单文件夹名或右键仅有“Close Folder”,实为单文件夹模式。“添加文件夹”不会自动保存,必须手动执行“Save Workspace As…”生成.code-workspace文件,路径须用相对路径以保障跨平台协作。

怎么判断当前是不是多文件夹工作区
窗口标题栏显示“工作区”或多个文件夹名(如 frontend、backend),且资源管理器顶部有多个并列根目录标签 → 是真正的多文件夹工作区。
如果只显示一个文件夹名,或右键根目录只有 Close Folder 而不是 Remove Folder from Workspace → 实际仍是单文件夹模式,所谓“合并窗口”只是错觉。
创建 .code-workspace 文件必须手动保存
VSCode 不会自动把“添加的文件夹”存成持久配置。没保存,关掉窗口就全丢。
操作要点:
- 先用
File → Add Folder to Workspace…加入所有目标文件夹 - 确认资源管理器已显示多个根目录
- 立刻执行
File → Save Workspace As…,后缀必须是.code-workspace - 路径选在所有项目共同父目录下,例如
my-system.code-workspace
保存后,VSCode 会把当前所有打开的编辑器分组、终端、调试配置一并固化——下次双击该文件,一切原样恢复。
path 字段写相对路径才跨平台可协作
.code-workspace 中的 "path" 写绝对路径(如 "C:\projects\api" 或 /home/user/api)会导致别人打开时报 path does not exist。
正确写法:
-
"path": "services/auth"→ 表示同级目录下的子文件夹 -
"path": "../shared-lib"→ 表示上一级目录中的独立仓库 - 所有路径都相对于
.code-workspace文件自身位置
团队协作时,把这个文件提交到 Git,并确保所有成员把各自项目放在约定好的相对位置结构里。
活动文件夹决定调试/终端/设置生效范围
多文件夹工作区里没有“全局上下文”,只有“活动文件夹(Active Folder)”。它默认取 folders 数组第一个条目,但不会随你编辑哪个文件自动切换。
关键影响:
-
launch.json只读取活动文件夹下的.vscode/launch.json - 集成终端默认在活动文件夹路径启动
- ESLint、Prettier 等插件配置优先使用活动文件夹里的
.eslintrc.js
右键资源管理器中任一文件夹 → 选 Set as Active Folder 手动切换;别指望 VSCode 自己猜对。
.code-workspace 文件定义开发上下文——它管的是什么项目在场、谁当主角、配置从哪读。漏掉保存、乱写路径、忽略活动文件夹,三者任一出错,都会让你以为功能失效。


















