VSCode怎么使用多根工作区管理多项目_VSCode如何创建multi-root工作区同时管理多个项目【详解】

秋强同学_3941

秋强同学_3941

2026-03-28

335人浏览

原创

正确创建 multi-root 工作区需先通过“将文件夹添加到工作区…”逐个添加,再“另存工作区为…”生成 .code-workspace 文件;该文件应置于所有项目共同父目录下,路径须用相对路径且与保存位置强绑定。

vscode怎么使用多根工作区管理多项目_vscode如何创建multi-root工作区同时管理多个项目【详解】

怎么创建 multi-root 工作区文件(.code-workspace)

VSCode 的多根工作区不是靠“打开多个文件夹”实现的,而是必须显式创建一个 .code-workspace 文件来声明哪些文件夹参与。直接拖拽多个文件夹进窗口,只会触发“添加文件夹到工作区”——但这个操作不持久,关掉窗口就丢,也不支持跨项目配置共享。

正确做法是:点击菜单 文件 → 将文件夹添加到工作区…,选中第一个项目目录;再重复添加第二个、第三个;最后点 文件 → 另存工作区为…,保存为 my-projects.code-workspace。

  • 保存后,双击该 .code-workspace 文件就能一次性加载全部根目录
  • 文件本质是 JSON,可手动编辑——比如改 "folders" 数组里的路径,或加 "settings" 块统一控制缩进、ESLint 路径等
  • 别把 .code-workspace 放在某个子项目里,建议放在所有项目的共同父级目录下,避免路径写成相对路径后迁移失败

为什么 workspace settings 有时不生效

多根工作区里,设置优先级是:用户设置 .code-workspace 里写的 "settings" 会自动覆盖所有子文件夹——其实不会,除非你在每个 folders 条目里显式指定 "path" 并配好相对路径,否则 VSCode 默认只对“工作区根”应用这些设置。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 检查是否在 .code-workspace 的顶层写了 "settings",而不是嵌套在某个 folders 下
  • 如果某个子项目需要独立规则(比如前端用 2 空格缩进,后端用 4),就在它自己的 .vscode/settings.json 里覆盖,别全堆到工作区层
  • "editor.tabSize" 这类设置在工作区级生效没问题,但像 "eslint.workingDirectories" 必须按子项目路径分别配置,否则 ESLint 找不到对应 package.json

终端默认工作目录为什么总跳错

多根工作区下,VSCode 新开终端默认进入的是“当前活动文件所在文件夹”,不是工作区根,也不是你期望的主项目目录。这会导致运行 npm run dev 或 python main.py 时提示“找不到模块”或“no such file”。

  • 右键终端标签页 → 在特定文件夹中创建终端,手动选目标子项目目录
  • 或者在 .code-workspace 中加 "terminal.integrated.defaultProfile.linux"(或 osx/windows)并配合 "terminal.integrated.profiles.*" 指定启动路径
  • 更简单的方法:在资源管理器里右键某个子文件夹 → 在集成终端中打开,这样终端自动 cd 进去

Git 面板只显示一个仓库的变更

VSCode 的源代码管理视图默认只展示“当前打开文件所属的 Git 仓库”的状态。如果你在 A 项目里编辑,B 项目的修改就不会出现在 Git 面板顶部——这不是 bug,是设计逻辑:它不主动轮询所有根目录下的 .git。

  • 点击 Git 面板右上角的 … → 切换仓库,可手动切换查看其他根目录下的 Git 状态
  • 想同时看多个仓库?装插件 GitLens,它的 Repositories 视图能列出全部根目录下的 Git 仓库及其未提交变更
  • 别依赖 Git 面板做跨项目批量提交——每个仓库仍需单独 commit/push,多根工作区不等于合并仓库

最常被忽略的一点:.code-workspace 文件里的路径如果是相对路径,移动整个工作区目录后会全部失效;绝对路径又不利于协作。稳妥做法是用 ${workspaceFolderBasename} 这类变量替代硬编码路径,但注意它们只在某些字段(如 launch.json)里有效,在 .code-workspace 的 folders.path 中不支持——这里只能老老实实写相对路径,并接受它和保存位置强绑定。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2055

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3062

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1036

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3459

7

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5387

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2368

6

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

5919

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1740

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1014

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程