目录
[如何优雅地导出 VS Code 项目目录结构](#如何优雅地导出 VS Code 项目目录结构)
[一、哪些场景需要导出 VS Code 目录结构?](#一、哪些场景需要导出 VS Code 目录结构?)
[1、代码评审(Code Review)或分享架构设计](#1、代码评审(Code Review)或分享架构设计)
[1、VS Code 插件:file-tree-generator / projecct-tree](#1、VS Code 插件:file-tree-generator / projecct-tree)
[2、使用树形命令 tree](#2、使用树形命令 tree)
[3、使用 Node.js 自写脚本导出目录结构](#3、使用 Node.js 自写脚本导出目录结构)
作者:watermelo37
CSDN优质创作者、华为云云享专家、阿里云专家博主、腾讯云"创作之星"特邀作者、火山KOL、支付宝合作作者,全平台博客昵称watermelo37。
一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。
温柔地对待温柔的人,包容的三观就是最大的温柔。
如何优雅地导出 VS Code 项目目录结构

在日常开发中,无论是前端 Vue 项目、后端 SpringBoot 工程,还是基于 Docker 的微服务架构,我们经常需要"导出项目目录结构"。具体有哪些常见场景,又要如何操作呢?
一、哪些场景需要导出 VS Code 目录结构?
仅我个人,就遇到过以下几类典型的场景:
1、代码评审(Code Review)或分享架构设计
当你想让其他开发者快速理解一个项目的模块拆分、业务边界、基础设施层次时,整棵项目树非常直观。一张清晰的目录结构比千言万语更有说服力。
比如 Vue 前端的 /components、/views、/composables组织方式;SpringBoot 的 /controller、/service、/domain 分层方式;Docker 多服务如何在 /deploy、/docker 中安排等等。都需要结合具体的项目目录来进行分享。
2、技术博客或者项目文档
仅我个人,经常在博文内容中分享具体的项目结构(或者局部结构),引导读者理解代码结构,来帮助读者快速理解场景、问题或者解决方案。
项目文档中也是一样,项目目录的作用与技术博文内容相似。
3、做LLM结构化输入
一些复杂的项目需求,经常需要给大语言模型输入项目结构作为参考,否则大模型哪怕给出正确的解决方案,也经常无法满足项目的实际需求。
这些场景都需要方便地导出 VS Code 的文件/目录结构。那么,具体怎么做呢?来看下面的几种方案。
二、实际可用的目录导出方法
以下所有方法我都实践过,并附上优缺点,让你能快速选到最适合的一种。
1、VS Code 插件:file-tree-generator / projecct-tree
这是 VS Code 生态中常用的方案,可以在编辑器中直接生成树形结构。
使用方式:
①在 VS Code 拓展中搜索 file-tree-generator,下载该拓展。

②右键要生成的目录,点击 Generate to Tree 即可生成对应的项目结构了:


这种方法简单易用,图形化操作,树结构清晰,能识别文件类型,但是输入目录过大时可能稍慢,不适合做自动化(CI、脚本)。
此外还有一些类似的拓展,比如 projecct-tree,这个拓展支持生成 Markdown 格式的项目目录,在某些场景使用起来更加方便。

2、使用树形命令 tree
这是最经典、最常用、最灵活的方法。要先安装:
macOS: brew install tree
Ubuntu: sudo apt install tree
Windows: 原生不支持,需要使用 Git Bash 的内置 tree
然后就可以使用命令:
bash
tree -I "node_modules|dist|.git" -L 3 > tree.txt
这里的 -I:排除目录,-L:深度限制,其他的参数可以自行了解。
这个方法最灵活、最快,支持脚本,可大量自定义格式、过滤规则,但是需要终端操作并且默认输出格式比较丑。
3、使用 Node.js 自写脚本导出目录结构
这个方法适合自动生成目录树、做项目分析、自动文档化。但是需要配置node环境。
给个简单的示例脚本吧,将下面的代码保存为 tree.js 文件。
javascript
const fs = require('fs');
const path = require('path');
function generateTree(dir, prefix = '') {
const files = fs.readdirSync(dir);
let result = '';
files.forEach((file, idx) => {
const isLast = idx === files.length - 1;
const fullPath = path.join(dir, file);
const stats = fs.statSync(fullPath);
result += `${prefix}${isLast ? '└── ' : '├── '}${file}\n`;
if (stats.isDirectory()) {
result += generateTree(fullPath, `${prefix}${isLast ? ' ' : '│ '}`);
}
});
return result;
}
console.log(generateTree(process.argv[2] || '.'));
然后在存放 tree.js 的文件夹中打开终端,运行下列命令就可以将当前文件夹的目录生成并导出到 tree.txt 文件中:
bash
node tree.js > tree.txt
也可以手动传入具体的地址,比如加一个相对路径:
bash
node tree.js ./src > src_tree.txt
这个方案优点是可完全定制(过滤、深度、输出格式等),可集成到 npm script,可在多项目中复用。缺点就是需要写脚本,相对更麻烦,而且效率一般不如 tree 命令高。
三、结语
导出 VS Code 目录结构看似是一个"小需求",但在实际工程、写文档、团队协作、LLM 助力开发等场景中,它是非常重要的"结构化表达工具"。在某些时刻一个简单的项目目录结构图,会大大增加沟通效率和展示效果。
只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
其他热门文章,请关注:
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解
测评:这B班上的值不值?在不同城市过上同等生活水平到底需要多少钱?
通过array.filter()实现数组的数据筛选、数据清洗和链式调用
TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急
通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能
高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
通过MongoDB Atlas 实现语义搜索与 RAG------迈向AI的搜索机制
前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能
JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题
内存泄漏------海量数据背后隐藏的项目生产环境崩溃风险!如何避免内存泄漏
MutationObserver详解+案例------深入理解 JavaScript 中的 MutationObserver
