VS Code通过多根工作区(.code-workspace文件)实现多项目统一管理,支持共享设置、调试配置和任务定义;需用“Create Workspace”命令创建,避免临时添加文件夹,并合理分层配置以确保生效。

VS Code 本身不支持“同时打开多个独立窗口项目并统一管理”的传统工作区概念,但通过 Workspace(多根工作区)机制,可以真正把多个项目目录组织进一个编辑器实例中——这是官方推荐、稳定且可持久化的方式。
什么是 VS Code 的 Workspace(多根工作区)
它不是一个文件夹,而是一个 .code-workspace 文件,本质是 JSON 配置,声明了哪些文件夹作为“根”加入当前工作区。和单文件夹模式不同,它能跨项目共享设置、调试配置、扩展启用状态和任务定义。
-
Ctrl+K Ctrl+R(Windows/Linux)或Cmd+K Cmd+R(macOS)可快速重载工作区 - 关闭窗口时若打开的是
.code-workspace文件,下次双击该文件即可恢复全部根目录和布局 - 不建议把项目 A 的
.vscode/配置直接复制到工作区根下:工作区级配置应写在.code-workspace的"settings"字段里
如何创建并保存多根工作区
别用“添加文件夹到工作区”菜单临时拼凑——那样不会生成可复用的 .code-workspace 文件。正确路径是:
- 先关闭所有文件夹,确保 VS Code 处于空窗口状态
- 执行命令面板:
Ctrl+Shift+P→ 输入Workspaces: Create Workspace→ 回车 - 在弹出的文件选择对话框中,按住
Ctrl(或Cmd)多选多个项目根目录 - 保存为
my-projects.code-workspace,之后双击该文件即启动完整工作区
生成的文件里会包含类似这样的结构:
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目,让您快速入门TP5项目开发。
{
"folders": [
{ "path": "../backend" },
{ "path": "../frontend" },
{ "path": "../shared-lib" }
],
"settings": {
"editor.tabSize": 2,
"files.exclude": { "**/node_modules": true }
}
}
常见陷阱:为什么“添加文件夹”后配置不生效?
VS Code 会在两种上下文里读取设置:文件夹级(.vscode/settings.json)和工作区级(.code-workspace 中的 settings)。当两者冲突时,工作区级设置优先,但仅限于明确声明的字段。
- 如果某个项目有自己的
.vscode/settings.json,它的eslint.enable或typescript.preferences.importModuleSpecifier仍会生效——工作区设置无法覆盖未显式声明的项 - 调试配置(
.vscode/launch.json)必须放在工作区根下,且需使用"type": "node"等指定目标文件夹,不能依赖相对路径自动推导 - 终端默认工作目录仍是第一个根文件夹,想切换需手动右键终端标签页 →
Change Default Directory
工作区太大时怎么避免卡顿?
多根工作区本身不增加内存开销,但每个根目录若含大量 node_modules 或 dist,会导致搜索、文件监听、TypeScript 语言服务变慢。
- 在
.code-workspace的"settings"中加"files.watcherExclude"和"search.exclude",例如:"**/node_modules/**": true - 禁用非必要扩展的跨根激活:比如某些 Git 扩展会在每个根里初始化仓库状态,可在
.code-workspace中用"extensions.ignoreRecommendations": true控制 - 大型 C++/Rust 项目建议单独开窗口,不要硬塞进同一工作区——语言服务器资源占用不可叠加优化
真正的难点不在创建,而在厘清「哪些配置该放工作区、哪些必须保留在各自项目内」。一旦搞混层级,就会出现改了设置却没反应、断点不命中、格式化规则失效这类问题。









