VS Code工作区是通过创建.code-workspace文件显式定义的多根文件夹管理载体,本质为JSON文件,记录文件夹路径、统一设置、扩展推荐及调试构建配置。

VS Code 的工作区不是靠“设置”出来的,而是通过创建 .code-workspace 文件显式定义的——直接新建或打开文件夹不会自动变成多根工作区,必须手动触发保存为工作区。
什么是 VS Code 工作区(.code-workspace)
工作区是 VS Code 管理多个文件夹(根文件夹)及其专属配置的载体。它本质是一个 JSON 文件,记录了哪些文件夹被包含、每个文件夹的 settings、extensions 推荐、tasks 和 launch 配置等。
单文件夹打开时,VS Code 默认使用该文件夹的 .vscode/settings.json;而工作区会覆盖这些设置,并支持跨文件夹统一管理。
- 不创建
.code-workspace文件 → 永远只是“单根文件夹”,哪怕你拖入多个文件夹到侧边栏 - 工作区文件必须手动保存(
File > Save Workspace As...),不能靠“另存为”普通文件夹 - 打开
.code-workspace后,窗口标题栏会显示[Workspace],这是唯一可靠识别方式
如何正确创建并保存工作区
关键动作只有两步:先添加所有目标文件夹,再显式保存为工作区文件。
- 启动 VS Code(确保无打开文件夹)
-
File > Add Folder to Workspace...,逐个添加需要纳入的文件夹(可重复操作) -
File > Save Workspace As...,输入名称(如my-project.code-workspace),保存到合适位置(建议放在项目顶层或文档目录) - 之后双击该
.code-workspace文件,或用code my-project.code-workspace命令行打开
注意:File > Save As 或直接复制粘贴文件夹路径无效;拖拽多个文件夹进空窗口 ≠ 创建工作区,只是临时视图。
工作区配置常见修改点(.code-workspace 内编辑)
保存后,可用任意编辑器打开 .code-workspace 文件,它就是一个标准 JSON。常用字段:
-
"folders":必须项,数组,每项含"path"(相对或绝对路径) -
"settings":整个工作区生效的设置,例如"editor.tabSize": 2 -
"extensions":推荐扩展列表,"recommendations": ["esbenp.prettier-vscode"] -
"launch"和"tasks":调试与构建配置,作用域为整个工作区
路径写法很重要:"path": "backend" 是相对于 .code-workspace 文件的位置;若要跨盘符或绝对路径,需写全(如 "path": "/Users/me/project/frontend"),但会降低可移植性。
为什么工作区没生效?几个典型卡点
最常被忽略的是 VS Code 的“上下文优先级”和缓存行为:
- 已打开单文件夹时,
Add Folder to Workspace...不可用 —— 必须先File > Close Folder - 修改了
.code-workspace的folders,但没重启 VS Code → 新增/删除的文件夹不会自动加载 - 某个子文件夹里有
.vscode/settings.json,且其中设置了"editor.insertSpaces": false,而工作区设为true→ 工作区设置会被该文件夹内设置**覆盖**(文件夹设置优先级高于工作区) - 用命令行
code /path/to/folder打开单文件夹后,再执行Save Workspace As→ 保存的是“当前打开的单文件夹”,不是多根工作区
工作区真正的复杂点不在创建,而在路径引用、设置继承链和多人协作时的 .code-workspace 提交策略——比如是否把 settings 写进去、要不要提交 extensions 推荐,这些都会直接影响团队成员打开后的体验一致性。









