vs code工作区需手动创建.code-workspace文件,保存时记录绝对路径的folders数组及settings等;路径变动需手动更新或重存;设置优先级为文件夹内.settings.json > 工作区settings > 用户设置。

VS Code 工作区文件怎么生成
VS Code 本身不提供“添加工作区”的按钮式操作,工作区本质是一个 .code-workspace 文件,必须手动创建或通过命令生成。它不是靠“编辑器菜单点几下”就能加进去的,而是靠你告诉 VS Code:“这些文件夹一起算一个项目”。
最稳妥的方式是:打开任意一个目标文件夹(比如 my-project),然后执行命令 File > Save Workspace As…,保存为 my-project.code-workspace。这个动作会生成一个 JSON 文件,里面记录了 folders 数组和可选的 settings、extensions 等。
- 如果直接双击打开已有
.code-workspace文件,VS Code 会以多根工作区模式启动 - 不要试图把多个独立文件夹拖进已打开的单文件夹窗口——这不会自动转成工作区,只是临时在资源管理器里显示,关掉就丢
-
.code-workspace文件可以放在任意位置,不一定要放在某个源码目录里;但建议和主项目放一起,方便团队共享
为什么改了文件夹路径后工作区打不开
工作区文件里的 folders 字段存的是绝对路径(Windows 下是 C:\src\backend 这种,macOS/Linux 是 /Users/you/project/frontend)。一旦你移动了某个文件夹,或者换电脑打开,路径对不上,VS Code 就会报错:Unable to open 'xxx': File not found.
这不是 bug,是设计如此。VS Code 不做路径映射或软链接解析,只认死路径。
- 跨设备协作时,优先用相对路径?不行——
.code-workspace不支持相对路径写法 - 解决办法只有两个:手动编辑
.code-workspace文件更新path字段,或删掉旧工作区、重新Save Workspace As… - 如果团队共用工作区文件,建议在 README 里注明各
path的预期结构,比如 “backend/和frontend/需位于同一父目录下”
工作区设置和用户/文件夹设置谁优先
工作区设置(即 .code-workspace 里的 settings)优先级高于用户设置,但低于当前打开的单个文件夹内的 .vscode/settings.json。也就是说,顺序是:
文件夹内 .vscode/settings.json > .code-workspace settings > 用户 settings.json
- 想让所有成员统一启用 ESLint,但又不干扰他们其他项目?写进
.code-workspace的settings - 想禁用某个插件只对这个工作区生效?用
"extensions.ignoreRecommendations": true放在工作区 settings 里 - 别在工作区里配
"editor.fontSize"这类个人偏好项——它会覆盖用户设置,引发协作困扰
能不能不生成 .code-workspace 文件就多开文件夹
能,但那不是工作区,只是“多根窗口”(multi-root window)的临时状态。你拖拽多个文件夹到 VS Code 窗口,或用 File > Add Folder to Workspace…,只要没执行 Save Workspace As…,关闭窗口后所有结构就丢了。
这种临时组合没有持久化,也不带任何自定义设置、推荐扩展或任务配置。
-
Add Folder to Workspace…是往当前(未保存的)工作区里加根,不是往磁盘加文件 - 临时多根窗口里右键某个文件夹选
Remove Folder from Workspace,只是移除视图,不影响磁盘 - 真要长期用,务必按第一步保存为
.code-workspace——否则下次打开就是单文件夹,所有上下文归零










