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