.code-workspace 是可编程的多项目开发上下文快照,需先添加文件夹再保存;配置分三层优先级,推荐插件须放工作区根目录的 .vscode/extensions.json;调试需用 compound 分层定义 launch.json。

.code-workspace 文件不是“打开多个文件夹”的快捷方式,而是你主动定义的多项目开发上下文快照——它能记住你加了哪些项目、每个项目叫什么、缩进用几个空格、哪些插件该启用、甚至上次关掉时终端在跑什么命令。
直接用 File → Open Folder 打开单个目录,所有配置都只作用于那个文件夹,且不保存;而保存为 .code-workspace 后,VSCode 就知道:“这是前端+后端+共享库联调专用环境”,下次双击就能原样恢复。
怎么创建一个真正可用的多根工作区
别先点“将工作区另存为…”——那会生成一个空壳。正确顺序是:先加项目,再保存。
- 启动干净的 VSCode(不打开任何文件夹)
- 点击
文件 → 将文件夹添加到工作区…,依次选中frontend/、backend/、shared-lib/ - 确认资源管理器顶部已列出全部三个文件夹
- 再执行
文件 → 将工作区另存为…,命名为my-app.code-workspace
此时生成的 JSON 文件里会包含 folders 数组,路径默认是相对工作区文件所在位置的——比如你把 .code-workspace 放在 ~/projects/ 下,那 "path": "frontend" 就指向 ~/projects/frontend。路径写错会导致打开时报错 Folder does not exist。
settings.json 放哪儿?优先级怎么算?
VSCode 设置有三层:用户级(全局)→ 工作区级(.code-workspace 里的 settings 字段)→ 文件夹级(各项目根下的 .vscode/settings.json)。越靠近项目,优先级越高。
- 统一规则(如禁用
node_modules搜索)写进.code-workspace的settings - 项目特有规则(如
python.defaultInterpreterPath只对后端生效)必须放backend/.vscode/settings.json - 千万别把敏感值(如 API token、SSH 密钥路径)写进
.code-workspace——它常被提交到 Git
{
"folders": [
{ "path": "frontend" },
{ "path": "backend" }
],
"settings": {
"search.exclude": {
"**/node_modules": true,
"**/dist": true
},
"editor.tabSize": 2
}
}为什么推荐扩展没弹出来?
VSCode 只在工作区根目录下发现 .vscode/extensions.json 时才提示安装推荐插件。但很多人误把它放在 .code-workspace 同级,或写错字段名。
- 必须建在工作区根目录(即和
my-app.code-workspace同一目录),路径是.vscode/extensions.json - 内容只能是标准 JSON,且字段名必须是
recommendations,不是recommended或extensions - 插件 ID 要准确,比如 Prettier 是
esbenp.prettier-vscode,不是prettier.vscode
{
"recommendations": [
"esbenp.prettier-vscode",
"ms-python.python",
"rust-lang.rust-analyzer"
]
}调试前端+后端时 launch.json 总冲突?
根本问题在于:VSCode 默认把所有 .vscode/launch.json 当作同一套配置加载。解决方法是分层——工作区级定义 compound,子项目级各自写独立 launch.json。
- 在
frontend/.vscode/launch.json中定义 Chrome 启动配置,"name": "Frontend Dev Server" - 在
backend/.vscode/launch.json中定义 Node.js 启动配置,"name": "Backend API" - 在工作区根目录(非任何子项目内)新建
.vscode/launch.json,只写compounds:
{
"version": "0.2.0",
"compounds": [
{
"name": "Full Stack Debug",
"configurations": ["Frontend Dev Server", "Backend API"],
"preLaunchTask": "Start Backend"
}
]
}这样 VSCode 才知道:“先跑后端任务,再并行启动两个服务”。否则它会在所有子项目里乱找 launch 配置,报错 Cannot find the configuration 'xxx'。
真正的难点不在“怎么加文件夹”,而在于理解 .code-workspace 是一个可编程的上下文容器——它不保存代码,但保存意图;不替代 Git,但能减少团队成员之间因“我这好使,你那不行”产生的扯皮。路径、命名、层级、信任状态(Trust Settings),每一步松动都会让协作成本悄悄翻倍。










