.code-workspace 文件是VSCode多工作区的JSON配置清单,需手动创建并保存,用于统一管理多项目路径、设置、调试等;其settings优先级最高,可覆盖文件夹级和用户级配置。

VSCode 的多工作区不是“打开多个窗口”那么简单,而是用一个 code-workspace 文件把多个独立项目路径组织起来,共享同一套设置、扩展和调试配置——关键在于它能统一管理跨项目的引用、符号跳转和任务运行。
什么是 .code-workspace 文件,怎么创建
它是一个 JSON 文件,本质是工作区的“配置清单”,不是项目文件夹本身。VSCode 不会自动为你生成,必须手动创建或通过命令面板触发。
- 在 VSCode 中打开任意文件夹后,执行命令
File > Add Folder to Workspace...,添加第二个、第三个项目目录 - 添加完毕后,执行
File > Save Workspace As...,保存为my-projects.code-workspace - 此后双击该文件,或用命令
code my-projects.code-workspace启动,就加载了全部文件夹 - 注意:
.code-workspace文件里存的是绝对路径,换电脑或重装系统后需手动更新folders数组中的路径
多工作区下 settings.json 的作用域优先级
你可能在单个项目里改过 .vscode/settings.json,但在多工作区中,这个文件依然生效,但会被更高优先级的配置覆盖。
- 工作区级(最高):在
.code-workspace文件中直接写"settings": { ... },比如统一关闭 ESLint 自动修复:"eslint.autoFixOnSave": false - 文件夹级(中):各项目根目录下的
.vscode/settings.json仍有效,但只影响本项目内的文件 - 用户级(最低):全局
settings.json,会被前两者覆盖 - 常见陷阱:在
.code-workspace中启用了"files.exclude",结果某个子项目里的构建产物被意外隐藏,排查时容易忽略这个层级
调试多个服务时 launch.json 怎么配
多工作区不等于自动支持多进程调试;你需要在 .code-workspace 的 "launch" 字段里定义多个配置,并用 "cwd" 显式指定每个服务的工作目录。
- 不要指望 VSCode 自动识别各子文件夹里的
.vscode/launch.json—— 它只读取工作区根(即.code-workspace所在位置)下的.vscode/launch.json - 每个
configuration必须有唯一name,并用"cwd": "${workspaceFolder:service-api}"指向对应子文件夹(service-api是你在.code-workspace中给该文件夹起的"name") - 如果依赖环境变量,别用
.env文件相对路径,改用"envFile": "${workspaceFolder:web-client}/.env.local" - 启动多个服务时,勾选调试侧边栏的 “Auto Attach” 或用
compound配置一次性拉起,否则得手动逐个点 ▶️
真正麻烦的不是加几个文件夹,而是当某个子项目升级了 TypeScript 版本,而 workspace 级的 typescript.tsdk 指向旧路径时,整个工作区的类型检查就全乱了——这种隐式耦合,往往要等跳转定义失败才被发现。










