基础学习: 更快的 glob/globby,fast-glob/fg 常用功能
记录一下 fast-glob 的常用功能
基本介绍
- 号称更快的 glob
- gulp 用到了 globby
- 而 globby 的底层就是 fg(fast-glob) 了
安装
npm i fast-glob
基本使用
const fg = require('fast-glob');
# 导步
const entries = await fg(['.editorconfig', '**/index.js'], { dot: true });
# 同步
const entries = fg.sync(['.editorconfig', '**/index.js'], { dot: true });
示例目录
.
├── .editorconfig
├── .eslintrc.json
├── .git
├── .gitattributes
├── .github
├── .gitignore
├── .npmrc
├── LICENSE
├── README.md
├── fixtures
├── package.json
├── src
└── tsconfig.json
选项及配套用法
选项 | | 代码 | 备注 |
---|
concurrency | cpu.length | - | 最大并发请求数 |
cwd | 当前 | const fg = require("fast-glob");
const entries = fg.sync(["*", ".*"], { cwd: "./ellis_error" });
console.log(entries);
| Current Work Dir |
deep | 1 | dir/
└── one/ // 1
└── two/ // 2
└── file.js // 3
fg.sync('dir/**', { onlyFiles: false, deep: 1 });
fg.sync('dir/**', { onlyFiles: false, deep: 2 });
fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 1 });
fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 2 });
| 深度 |
followSymbolicLinks | - | | |
fs | - | | 默认 fs 实现 |
absolute | | fg.sync('*.js', { absolute: false });
fg.sync('*.js', { absolute: true });
| |
markDirectories | | fg.sync('*', { onlyFiles: false, markDirectories: false });
fg.sync('*', { onlyFiles: false, markDirectories: true });
| |
objectMode | | fg.sync('*', { objectMode: false });
fg.sync('*', { objectMode: true });
| |
onlyDirectories | | fg.sync('*', { onlyDirectories: false });
fg.sync('*', { onlyDirectories: true });
| 仅保存目录 |
onlyFiles | | fg.sync('*', { onlyFiles: false });
fg.sync('*', { onlyFiles: true });
| |
stats | false | | 将文件 信息 添加进来 |
unique | true | fg.sync(['*.json', 'package.json'], { unique: false });
fg.sync(['*.json', 'package.json'], { unique: true });
| |
caseSensitiveMatch | | dir/
├── file.txt
└── File.txt
fg.sync('file.txt', { caseSensitiveMatch: false });
fg.sync('file.txt', { caseSensitiveMatch: true });
| 大小写敏感 |
dot | false | dir/
├── .editorconfig
└── package.json
fg.sync('*', { dot: false });
fg.sync('*', { dot: true });
| 对点文件处理 |
globstar | false | dir/
└── a
└── b
fg.sync('**', { onlyFiles: false, globstar: false });
fg.sync('**', { onlyFiles: false, globstar: true });
| 对** 情况的递归 |
参考