唯一稳定可协作的vscode启动方式是使用.code-workspace文件:需从空窗口创建、多选根目录、保存为相对路径,双击启动;其settings为覆盖层,调试配置须显式指定cwd,路径用相对路径且不可含敏感信息。

VSCode 启动时直接加载指定项目集,唯一稳定、可协作、不丢上下文的方式是使用 .code-workspace 文件——不是靠“记住上次打开的文件夹”,也不是靠插件自动恢复,而是靠双击或命令显式启动这个 JSON 配置文件。
为什么不能依赖“上次打开的文件夹”自动恢复
VSCode 的默认恢复逻辑对单文件夹和多根工作区完全不同:workbench.startupEditor 设为 lastActiveEditor 仅保证编辑器标签页恢复,但不会重建跨项目搜索、终端默认路径、调试配置上下文;如果上次关的是普通文件夹,再启动时即使勾选了“Continue where you left off”,也进不了工作区模式。更关键的是,一旦你中途用“打开文件夹”覆盖当前窗口,所有其他根目录就彻底丢失,且无法回溯。
如何创建一个真正能启动项目的 .code-workspace 文件
必须从空窗口开始(状态栏显示 No folder opened),否则添加的文件夹只是临时叠加,不写入持久化配置:
- 按
Ctrl+Shift+P→ 输入并运行Workspaces: Create Workspace from Folder - 按住
Ctrl(Windows/Linux)或Cmd(macOS)多选所有项目根目录,例如./frontend、./backend、../shared - 保存为相对路径的
my-team.code-workspace(推荐放在所有项目共同父目录下) - 保存后检查状态栏是否显示
[Workspace],资源管理器顶部是否列出多个独立文件夹名——这是唯一可信的启用标志
启动时确保加载成功的关键细节
双击 .code-workspace 文件是最容错的启动方式;用 code 命令行调用时,路径必须准确,且 VSCode 必须已注册为系统默认处理程序:
- Windows/macOS 下直接双击该文件即可,无需额外配置
- 终端中执行
code my-team.code-workspace时,当前工作目录应为该文件所在目录,否则路径解析可能失败 - 若设为开机自启(如 macOS 登录项),务必添加的是
.code-workspace文件路径,而非Code.exe或code命令本身 - 一旦移动或重命名该文件,下次双击会报错:
Unable to open 'my-team.code-workspace': File not found.
工作区设置与各项目配置的生效边界
.code-workspace 里的 settings 是覆盖层,只影响你明确写进去的字段;语言/框架相关配置(如 python.defaultInterpreterPath、eslint.packageManager)仍由各自项目下的 .vscode/settings.json 控制:
-
files.exclude、search.exclude这类全局性设置适合放工作区级 -
editor.tabSize被设为2,但某个前端项目需要4?它自己的.vscode/settings.json会覆盖工作区值 - 调试配置
launch.json必须放在.code-workspace同级目录的.vscode/下,且每个configuration必须显式写"cwd": "${workspaceFolder:backend}",其中backend必须和folders数组里"path": "./backend"的最后一级目录名完全一致
最容易被忽略的一点:手动编辑 .code-workspace 后保存,所有注释会被清空,缩进强制变为 2 空格——别指望保留说明文字;所有路径尽量用相对路径,避免换机器后失效;Git 提交时可提交该文件,但切记不要把 env、密钥等敏感字段硬编码进去。











