多根工作区是 vscode 通过。code-workspace 文件结构化管理多个独立项目的方式,支持统一配置与隔离运行;它以jsON 格式声明多个根路径,共享设置但各自保留任务、调试及文件监听范围。

VSCode 的多根工作区(Multi-root Workspaces)不是“打开多个文件夹”的简单叠加,而是一种结构化管理多个独立项目的方式——它让你在一个窗口里同时操作多个根目录,共享统一的设置、扩展行为和调试配置,又彼此隔离不干扰。
什么是多根工作区?
它是一个以 .code-workspace 为后缀的 json 文件,里面明确列出若干个文件夹路径(roots),每个路径代表一个独立的项目根目录。VSCode 会把它们当作一个逻辑整体加载,但每个文件夹保持自己的文件树、任务定义、launch 配置和文件监听范围。
和“依次打开多个窗口”或“拖拽多个文件夹到单窗口”不同:后者只是临时叠加,不保存结构、不统一配置;而多根工作区可保存、可版本控制、可复用,是团队协作和全 栈开发的实用方案。
如何创建和打开多根工作区?
有三种常用方式:
- 菜单栏选择 File → Add Folder to Workspace……,添加第一个文件夹后,再重复添加其他文件夹;完成后点击 File → Save Workspace As……,保存为
my-project.code-workspace - 直接在命令面板(Ctrl+Shift+P / Cmd+Shift+P)中输入 Workspaces: Create Workspace from Folder,选中当前文件夹,再手动添加其余根目录
- 手动新建一个 JSON 文件,命名为
xxx.code-workspace,写入如下结构并用 VSCode 打开它:
{“folders”: [ { “path”: “frontend”}, {“path”: “backend”}, {“path”: “../shared-libraries/utils” } ], "settings": {“editor.tabSize”: 2} }
关键配置与实用技巧
多根工作区的核心优势在于“分而治之,统而用之”,以下几点最常被忽略但很关键:
- 工作区级设置(settings)优先于用户 / 文件夹设置:在
.code-workspace中写的"settings"会覆盖用户设置,且对所有根目录生效(除非某文件夹内有.vscode/settings.json显式覆盖) - 每个根目录可自带 .vscode/tasks.json 和 launch.json:VSCode 会自动识别并合并——运行任务或调试时,下拉菜单会按文件夹分组显示,比如
frontend: build和backend: start-dev - 搜索(Ctrl+Shift+F)默认跨所有根目录,但可点击右上角文件夹图标缩小范围;替换操作也支持按文件夹筛选
- 推荐在 workspace 文件中禁用全局扩展干扰 :比如 前端 项目不需要 python 扩展高亮,可在
"extensions"字段中设"recommendations",只提示该工作区需要的扩展
常见问题 与避坑提醒
多根工作区用起来顺手,但几个细节容易踩坑:
- 路径必须是相对当前
.code-workspace文件的路径,或绝对路径;相对路径更便于共享和迁移 - 不要把父子目录同时加入(例如
project/和project/src/),会导致文件重复索引、git 状态混乱 - 某些扩展(如 ESLint、Prettier)需在每个根目录下单独安装依赖或配置
.eslintrc,工作区设置无法替代项目级配置 - 关闭窗口时若未保存 workspace 文件,添加的文件夹不会被记住——务必养成 Save Workspace As 的习惯
基本上就这些。多根工作区不复杂,但容易忽略它的“配置边界”和“路径语义”。用好它,前端 + 后端、主项目 + 插件仓库、甚至文档 + 代码一体化管理,都会变得清晰可控。