VS Code 文件嵌套怎样把同名产物收进源文件
项目里同时出现 app.ts、app.js、app.d.ts 和 app.js.map 时,VS Code Explorer 很快会被伴随文件占满。与其用 files.exclude 把它们藏起来,不如开启文件嵌套:让产物仍然可访问,但折叠到对应的源文件下面。
官方地址:https://code.visualstudio.com/docs/editing/getting-started/userinterface
在设置中打开explorer.fileNesting.enabled,再用explorer.fileNesting.patterns写“父文件模式 → 子文件模式”规则,就能把同名产物收进源文件;explorer.fileNesting.expand决定默认展开还是折叠。
先找到文件嵌套的设置入口
文件嵌套作用于 Explorer 的目录展示,不会移动文件,也不会改变磁盘上的目录结构。先确认当前打开的是目标项目,再决定规则只服务这个工作区,还是所有项目都使用。
- 在左侧活动栏点击
Explorer,确认项目文件夹已经展开。 - 按
Cmd/Ctrl+,打开Settings,在搜索框输入file nesting。 - 找到
Explorer › File Nesting: Enabled并打开;需要控制初始状态时,再找到Explorer › File Nesting: Expand。 - 需要写自定义规则时,点击设置项旁边的打开 JSON 图标,进入当前作用域的
settings.json。

用 patterns 把同名产物收进源文件
自定义规则写在 explorer.fileNesting.patterns 中。左侧是父文件匹配模式,右侧是用逗号分隔的子文件模式;${capture} 会复用左侧 * 捕获到的同名部分。
例如,一个 TypeScript 项目希望把 JavaScript 编译产物、声明文件和 sourcemap 收到对应的 .ts 文件下,可以使用下面这段严格 JSON:
{
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.expand": false,
"explorer.fileNesting.patterns": {
"*.ts": "${capture}.js, ${capture}.d.ts, ${capture}.js.map",
"*.js": "${capture}.js.map",
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml"
}
}
这段 JSON 不能添加注释,否则设置文件会失效。*.ts 匹配 app.ts,其中 ${capture} 就是 app,所以旁边的 app.js、app.d.ts 和 app.js.map 会成为它的嵌套项。锁文件规则则是把固定的 package.json 作为父文件。
选择工作区范围并确认折叠状态
如果只想让当前仓库采用这套整理方式,在设置界面顶部选择 Workspace 作用域,或把 JSON 写进项目根目录的 .vscode/settings.json。写入 User 作用域会影响其他项目,适合你长期统一维护的文件命名约定。
- 在设置页面顶部选择
Workspace,确认左侧标记已经切换。 - 把
Explorer › File Nesting: Enabled设为开启。 - 把
Explorer › File Nesting: Expand设为关闭,让目录首次打开时只显示父文件。 - 回到 Explorer,展开目标目录;看到文件名右侧出现嵌套数量,点击父文件左侧箭头即可查看子文件。

匹配不到或误收时怎样调整
文件嵌套最常见的问题不是功能没有打开,而是匹配模式和真实文件名没有对上。可以按下面的顺序处理:
- 同名部分没有复用:父模式使用了
*时,子模式优先写${capture};如果父文件名是固定的,则直接写固定子文件名。 - 只想匹配当前目录名:使用
${dirname}代表父文件所在目录名,避免把其他目录里同名文件一起归组。 - 扩展名需要复用:使用
${extname},但要先确认它代表的是父文件的扩展名,而不是完整文件名。 - 不想默认展开:确认
explorer.fileNesting.expand为false;它只影响初始展示,不会删除嵌套关系。 - 规则像隐藏文件一样消失:检查是否同时配置了
files.exclude或search.exclude。文件嵌套是“收起但保留”,排除规则则可能让文件根本不显示。
| 设置 | 解决的问题 | 影响范围 |
|---|---|---|
explorer.fileNesting.enabled | 是否启用文件嵌套 | User 或 Workspace |
explorer.fileNesting.expand | 嵌套组是否默认展开 | User 或 Workspace |
explorer.fileNesting.patterns | 哪些文件归到哪个父文件 | User 或 Workspace |
files.exclude | 是否从 Explorer 隐藏匹配文件 | User 或 Workspace |
最后用一个小场景确认配置
可以在测试目录放置 demo.ts、demo.js、demo.d.ts 和 demo.js.map 四个文件。刷新 Explorer 后,预期只看到一个 demo.ts 父项;展开它,三个伴随文件仍能被打开、复制或删除。若只看到一个文件且没有展开箭头,优先检查规则是否写入了当前工作区的 settings.json,以及父模式中的通配符是否与文件名一致。
常见问题
文件嵌套会改变 Git 或构建工具读取文件的方式吗?
不会。它只改变 Explorer 的可视层级,文件仍在原来的目录中,Git、构建工具和命令行看到的路径不变。
应该用文件嵌套还是 files.exclude?
需要偶尔访问产物时用文件嵌套;确定永远不需要在 Explorer 中查看的目录或文件,才考虑 files.exclude。两者可以同时存在,但排除规则可能先让文件不可见。
为什么配置改了但旧目录没有变化?
先折叠并重新展开目录,再确认设置作用域和 JSON 格式。若仍不变化,检查是否有其他工作区设置或配置文件覆盖了当前值。
把文件嵌套当成 Explorer 的“收纳层”即可:它负责降低目录噪声,不负责隐藏事实。用 ${capture} 对齐同名产物,用 Workspace 作用域限制影响,再用展开箭头确认文件仍可访问,通常就能得到清爽且不丢文件的项目视图。
Git rebase --autosquash 怎样整理修复提交
- 上一篇
- Git rebase --autosquash 怎样整理修复提交
- 下一篇
- VS Code 怎样只对 Markdown 文件开启自动换行
-
- 文章 · 软件教程 | 56分钟前 | docker · 配置 · 环境变量 Docker Compose env_file
- Docker Compose 怎样使用 env_file 管理服务变量
- 271浏览 收藏
-
- 文章 · 软件教程 | 59分钟前 | vs code · 软件教程 · VS Code markdown 自动换行 语言专属设置 editor.wordWrap
- VS Code 怎样只对 Markdown 文件开启自动换行
- 206浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | git ·
- Git rebase --autosquash 怎样整理修复提交
- 484浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- DBeaver 怎样把查询结果导出为 CSV
- 240浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- Postman 怎样查看请求响应时间
- 278浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | 软件教程 · Docker Compose 一次性任务 docker compose run
- Docker Compose run 怎样执行一次性任务
- 479浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- GitHub Actions 怎样缓存依赖并避免键冲突
- 194浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code 源代码管理怎样查看文件变更对比
- 397浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code 调试控制台怎样执行多行表达式
- 328浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code Tasks 怎样保存可复用的构建命令
- 130浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | 开发工具 · vs code · VS Code glob Files to include 搜索文件夹
- VS Code 怎样把搜索结果限制在指定文件夹
- 265浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code 怎样只对当前文件启用格式化工具
- 201浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 852次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 859次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 938次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 914次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 743次使用
-
- VS Code 怎么给 Go 项目配置测试任务:tasks.json 运行与结果验收
- 2026-07-09 501浏览
-
- Windows 11 如何开启 HEIF 图片支持
- 2026-05-31 501浏览
-
- TikTok用户画像与付费订阅变现方法
- 2026-05-27 501浏览
-
- 学信网学历翻译件申请方法
- 2026-05-27 501浏览
-
- Windows 11 24H2 更新失败0x80070005解决方法
- 2026-05-26 501浏览

