https://www.npmjs.com/package/tree-node-cli

tree-node-cli

以树状格式列出目录的内容,类似于 Linux tree 命令。提供了 CLI 和 Node API。

Tree 是一个递归目录列表程序,可生成深度缩进的文件列表。当给出目录参数时,树列出在给定目录中找到的所有文件与目录。

注意:不遵循符号链接。

安装

1
2
3
$ npm install tree-node-cli
# 或全局
$ npm install -g tree-node-cli

范例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ tree -L 2 -I "node_modules"
tree-node-cli
├── LICENSE
├── README.md
├── __tests__
│ ├── __fixtures__
│ ├── __snapshots__
│ ├── fixtures
│ └── tree.test.js
├── bin
│ └── tree
├── jest.config.js
├── package.json
├── tree.js
└── yarn.lock

CLI

1
$ tree [options] [path/to/dir]

**注意:**为避免与内置的tree命令冲突,请在 Windows 和 Linux 上使用treee命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ tree -h

Usage: tree [options]

Options:

-V, --version 输出版本号。
-a, --all-files 打印所有文件,包括隐藏文件。
--dirs-first 在文件之前列出目录。
-d, --dirs-only 仅列出目录。
-s, --sizes 显示文件大小。
-I, --exclude [patterns] Exclude files that match the pattern. | separates alternate patterns. Wrap your entire pattern in double quotes. E.g. `"node_modules|coverage".
-L, --max-depth <n> 目录树的最大显示深度。
-r, --reverse 按相反的字母顺序对输出进行排序。
-F, --trailing-slash 为目录附加一个“/”。
-S, --line-ascii 打开 ASCII 线条图形。
-h, --help 输出使用信息

API

1
2
const tree = require('tree-node-cli');
const string = tree('path/to/dir', options);

options 是具有以下字段的配置对象:

字段 默认 类型 描述
allFiles false Boolean 打印所有文件。默认情况下,tree 不打印隐藏文件(以点开头的文件)。
dirsFirst false Boolean 在文件之前列出目录。
dirsOnly false Boolean 仅列出目录。
sizes false Boolean 也显示文件大小。
exclude [] Array 用于测试每个文件名的正则表达式数组。匹配的文件将被排除,匹配的目录将不会被遍历。
maxDepth Number.POSITIVE_INFINITY Number 目录树的最大显示深度。
reverse false Boolean 以相反的字母顺序对输出进行排序。
trailingSlash false Boolean 在目录后面附加一个尾部斜线。
lineAscii false Boolean 打开 ASCII 线条图形。
1
2
3
4
5
6
7
const string = tree('path/to/dir', {
allFiles: true,
exclude: [/node_modules/, /lcov/],
maxDepth: 4,
});

console.log(string);

许可证

MIT