乐趣区

使用treenodecli生成树状目录

在写博客的时候经常会需要展示项目的目录结构,我电脑是 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

退出移动版