VS Code 通过 .code-workspace 实现多项目精准管理,支持分级配置、扩展按文件夹启用及任务终端定向;直接拖拽多文件夹无持久化且无法独立配置。

VS Code 本身不支持传统意义上的“多项目并行打开且各自独立配置”,但通过工作区(.code-workspace)机制,可以精准控制哪些文件夹参与、各文件夹的设置优先级、扩展启用范围和任务/调试配置——这才是实际开发中管理多个关联或不关联项目的正确方式。
用 .code-workspace 替代直接打开多个文件夹
直接拖拽多个文件夹到 VS Code 窗口,会进入“多根工作区”模式,但此时没有持久化配置,关闭后所有路径丢失;且无法单独为每个文件夹指定 settings.json 覆盖项或禁用某些扩展。
- 正确做法:菜单栏选择 File → Save Workspace As…,保存为
my-project.code-workspace - 该文件是纯 JSON,可 Git 提交,团队成员打开后自动复现相同文件夹结构和设置
- 每个文件夹下仍可保留自己的
.vscode/settings.json,它会叠加在工作区设置之上,实现分级配置 - 如果某个文件夹只是临时查看(如依赖源码),不要加进工作区,改用 File → Add Folder to Workspace… 动态添加,再右键文件夹选 Remove Folder from Workspace 移除
settings.json 的作用域层级容易搞混
VS Code 设置有三层:用户级(全局)、工作区级(.code-workspace)、文件夹级(.vscode/settings.json)。后两者都写在 JSON 里,但生效逻辑不同。
- 工作区级设置写在
.code-workspace的"settings"字段下,对整个工作区所有文件夹生效 - 文件夹级设置必须放在对应文件夹内的
.vscode/settings.json中,只影响该文件夹及其子目录 - 当冲突时:文件夹级 > 工作区级 > 用户级。例如:工作区设
"editor.tabSize": 2,而某个前端文件夹内设"editor.tabSize": 4,则该文件夹内一定是 4 - 注意:
"extensions.ignoreRecommendations": true这类设置只能放在用户级或工作区级,文件夹级不生效
扩展启用范围需手动控制,否则互相干扰
装了 ESLint、Prettier、Python 插件后,它们默认会对所有打开的文件夹生效。如果你同时打开一个 Python 项目和一个 Vue 项目,ESLint 可能报错“no-unused-vars”却对 .py 文件无效,还拖慢响应。
艺帆网络工作室网站源码,是国庆后新一批新概念的网站源码,采用流行的Html5和JS组合流畅顺滑,界面清晰明朗,适合科技类企业和公司建站使用。如果你是想成为一家独特的设计公司,拥有独特的文化,追求品质,而非数量与规模。 这种坚持一直贯穿于项目运作之中,从品牌建立、形象推广设计到品牌形象管理。那可以考虑使用这款艺帆网络工作室网站源码。 这款源码中服务项目和团队程序需要在_template文件夹下的in
- 右键侧边栏中的某个文件夹 → Configure Extension Settings,可为该文件夹单独开关扩展
- 更推荐:在
.code-workspace中用"extensions.disabledRecommendations"+"extensions.autoUpdate"统一关掉非必要自动行为 - 对语言专属扩展(如
ms-python.python),可在对应文件夹的.vscode/settings.json中加"python.defaultInterpreterPath",避免跨项目路径错乱
终端和任务默认绑定到第一个文件夹,不是当前活动文件夹
即使你在第二个文件夹里右键打开终端,VS Code 默认仍以工作区第一个添加的文件夹为 cwd,导致 npm run dev 找不到 package.json。
-
解决方法一:终端启动时手动执行
cd ./second-folder - 解决方法二:在该文件夹的
.vscode/tasks.json中明确指定"options": { "cwd": "${workspaceFolder}/second-folder" } - 解决方法三:安装扩展
Terminal Tabs或使用 VS Code 内置的“终端配置文件”,新建终端时选择“在文件夹中打开”(需 VS Code 1.86+) - 关键点:
${workspaceFolder}指的是“当前激活的文件夹”,不是工作区根目录;而${workspaceFolderBasename}是文件夹名,可用于区分不同终端标题
真正麻烦的不是怎么加文件夹,而是哪些设置该放工作区、哪些必须下沉到文件夹、哪些根本不能共存——尤其当项目间有同名脚本、冲突的 lint 规则或不同 Node.js 版本时,靠“多开窗口”反而更省事。工作区不是万能胶,而是精确手术刀,用错位置就等于埋雷。









