在写博客的时候经常会需要展示项目的目录结构,我电脑是 windows 的,tree 命令不是很好使。能用 Node 就用 Node! 所以就找了几个跨平台的。分别是 tree-cli 和 tree-node-cli,这两个是一个作者。其中 tree-node-cli 是比较适合 Linux 用户的,大小写区分,而且还有 API,但是目前不能直接生成文件。除了这种类型的,还有生成 md 的、能生成网页的等等,大家自己搜搜就好了。
安装 tree-node-cli
npm install -g tree-node-cli
使用
执行如下命令即可在终端中生成,复制保存下来即可。
treee -L 3 -I "node_modules|.idea|objects|.git" -a --dirs-first
结果:
├── config
│ ├── config.js
│ ├── defaultSettings.js
│ ├── plugin.config.js
│ ├── proxy.js
│ └── themePluginConfig.js
├── mock
│ ├── notices.js
│ ├── route.js
│ └── user.js
├── public
│ ├── change
│ │ ├── asideNavImg
│ │ ├── img
│ │ └── js
│ ├── icons
│ │ ├── icon-128x128.png
│ │ ├── icon-192x192.png
│ │ └── icon-512x512.png
│ ├── favicon.png
│ └── ver.version
├── src
│ ├── assets
│ │ ├── MonitoringCenterImg
│ │ ├── Nav
│ │ ├── PlatformImg
│ │ ├── Rest
│ │ ├── Top
│ │ ├── blank.png
│ │ └── logo.svg
│ ├── components
│ │ ├── AddMember
│ │ ├── AddTags
│ │ ├── Authorized
│ │ ├── Crumbs
│ │ ├── GlobalHeader
│ │ ├── HeaderDropdown
│ │ ├── HeaderSearch
│ │ ├── Information
│ │ ├── MemberTab
│ │ ├── NoticeIcon
│ │ ├── OutSide
│ │ ├── PageLoading
│ │ ├── ParentOrg
│ │ ├── ResetPass
│ │ ├── RoleTree
│ │ ├── ServiceGovernance
│ │ ├── Ssologout
│ │ └── TreeModal
│ ├── e2e
│ │ ├── ****mocks****
│ │ ├── baseLayout.e2e.js
│ │ └── topMenu.e2e.js
│ ├── layouts
│ │ ├── BasicLayout.jsx
│ │ ├── BlankLayout.jsx
│ │ ├── index.less
│ │ └── SecurityLayout.jsx
│ ├── models
│ │ ├── AsideNavStore.js
│ │ ├── global.js
│ │ ├── Home.js
│ │ ├── LogCenter.js
│ │ ├── login.js
│ │ ├── MonitoringCenter.js
│ │ ├── Platform.js
│ │ ├── ServiceGovernance.js
│ │ └── setting.js
│ ├── pages
│ │ ├── .umi
│ │ ├── LogCenter
│ │ ├── MonitoringCenter
│ │ ├── Platform
│ │ ├── ServiceGovernance
│ │ ├── 404.jsx
│ │ ├── Authorized.jsx
│ │ └── document.ejs
│ ├── services
│ │ ├── Home.js
│ │ ├── LogCenter.js
│ │ ├── login.js
│ │ ├── MonitoringCenter.js
│ │ ├── NavStore.js
│ │ ├── Platform.js
│ │ ├── serviceGovernance.js
│ │ └── user.js
│ ├── utils
│ │ ├── authority.js
│ │ ├── authority.test.js
│ │ ├── Authorized.js
│ │ ├── cac.js
│ │ ├── date.js
│ │ ├── getEchart.js
│ │ ├── getIframeHeight.js
│ │ ├── getResUrl.js
│ │ ├── request.js
│ │ ├── tableIcon.js
│ │ ├── tree.js
│ │ ├── utils.js
│ │ ├── utils.less
│ │ └── utils.test.js
│ ├── global.jsx
│ ├── global.less
│ ├── manifest.json
│ └── service-worker.js
├── tests
│ ├── run-tests.js
│ └── setupTests.js
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .prettierignore
├── .prettierrc.js
├── .stylelintrc.js
├── CHANGELOG.md
├── jest-puppeteer.config.js
├── jest.config.js
├── jsconfig.json
├── package.json
└── README.md
解释
- windows 用户需要用 treee 代替 tree,避免和系统的 tree 命令冲突。
treee
- 指定路径的级别为 3 级。
-L 3
- 忽略文件夹(正则表达式匹配的,.git 会匹配到.gitignore, 所以.gitignore 文件没有显示出来)。
-I "node_modules|.idea|objects|.git"
- 显示所有文件(默认前缀有 ”.” 的不会显示,例如 ”.electron-vue”)。
-a
- 目录在前,文件在后(默认是字母排序,和 idea 显示的顺序不一致)。
--dirs-first
完整选项
-V, --version 输出版本号 -a, --all-files 打印所有文件,包括隐藏文件 --dirs-first 目录在前,文件在后 -d, --dirs-only 仅列出目录 -I, --exclude [patterns] 排除与模式匹配的文件。用 | 隔开, 用双引号包裹。例如“node_modules|.git”-L, --max-depth <n> 目录树的最大显示深度 -r, --reverse 按反向字母顺序对输出进行排序 -F, --trailing-slash 为目录添加 '/'-h, --help 输出用法信息
卸载
npm uninstall -g tree-node-cli