vscode的“添加文件夹到工作区”仅为临时会话操作,不生成持久配置;必须执行“另存工作区为…”生成.code-workspace文件,才能保存路径、设置、调试等全部状态,否则关闭窗口即丢失。

必须显式保存为 .code-workspace 文件,否则所有添加的文件夹都是临时的,关掉窗口就丢。
为什么“添加文件夹到工作区”不等于创建多根工作区
VSCode 的「将文件夹添加到工作区…」只是会话级操作,不生成任何持久配置。你拖拽、右键、菜单添加的文件夹,只要没执行「另存工作区为…」,重启 VSCode 后全部消失。状态栏显示“无标题(工作区)”时,它仍是未保存的临时状态。
- 常见错误:先打开
./frontend,再添加./backend,以为已经完成 → 实际只在内存里记住了路径 - 更隐蔽的坑:从已有文件夹窗口出发添加其他根 → VSCode 会把第一个文件夹当作“主根”,后续添加可能被路径解析干扰(尤其跨父目录时)
- 正确起点:启动 VSCode 后确保状态栏显示
No folder opened(紫色背景),再开始添加
创建 .code-workspace 文件的两种可靠方式
推荐用命令面板操作,避免菜单误点;手动编辑仅适合已有明确路径结构的场景。
- 方式一(推荐):按
Ctrl+Shift+P→ 输入Workspaces: Create Workspace from Folder→ 按住Ctrl多选所有项目根目录(如./frontend,./backend,../shared)→ 确认后自动进入保存流程 - 方式二(兼容旧版):菜单栏
文件 → 将文件夹添加到工作区…逐个添加 → 添加完后立即执行文件 → 另存工作区为…→ 保存为my-app.code-workspace - 手动创建(慎用):新建 JSON 文件,命名为
my-app.code-workspace,内容至少包含"folders": [{"path": "./frontend"}, {"path": "./backend"}];注意 JSON 不支持注释,路径不能用~或环境变量
.code-workspace 文件该放哪儿、怎么写路径
位置和路径写法直接决定可迁移性。放错位置或写死绝对路径,换电脑或给同事用就会报错或加载失败。
- 必须放在所有项目共同的父目录下(例如
~/projects/my-app.code-workspace,而各项目是~/projects/frontend,~/projects/backend) - 路径必须用相对路径(
"./frontend"),不能用绝对路径(/home/user/project/frontend)或波浪线(~/frontend) - 不要嵌套:比如
./frontend/src是非法根路径,VSCode 要求每个path必须是完整项目根(含package.json或tsconfig.json等标识) - 如果项目不在同一父目录下(如
./frontend和../shared),仍可用相对路径,但要以.code-workspace文件所在位置为基准计算
保存后立刻验证的三件事
很多人以为保存完就万事大吉,其实关键配置是否生效得当场确认。
- 双击刚保存的
my-app.code-workspace文件,检查资源管理器是否同时列出所有根目录,且状态栏显示工作区名而非“无标题” - 按
Ctrl+Shift+P→ 输入Preferences: Open Settings (JSON)→ 看顶部注释是否为Workspace settings,且内容来自该.code-workspace文件 - 在任一子项目里打开终端(
Ctrl+`),运行pwd→ 应显示对应项目根路径,不是工作区根路径(这点直接影响npm run dev能否找到package.json)
最常被忽略的是路径基准问题:一旦 .code-workspace 移动位置,里面所有 "path" 字段都得重算;还有调试时 cwd 默认指向工作区根,而不是你当前打开的子项目——这两个点不提前踩坑,后面 launch.json 配一半才发现进程起不来。











