fast-glob 是一个快速、简单的 Node.js 模块,方便地实现类似于 Unix shell 的 glob 表达式。
@bluelovers/fast-glob 是一种使用了 TypeScript 的完全重写版本,增强了 glob 的许多特性和性能。
安装
使用 npm 安装:
npm install --save @bluelovers/fast-glob
快速用法
在 Node.js 中使用 fast-glob 可以非常快速地匹配文件和目录。例如:
const fg = require('@bluelovers/fast-glob'); (async () => { const files = await fg(['**/*.js', '!node_modules/**'], { ignore: ['**/test/**'] }); console.log(files); })()
功能
对比 fast-glob 基本功能,@bluelovers/fast-glob 增强了如下特性:
- Filter通过返回 false 来删除不需要的项。
- Option ‘objectMode’ 将返回 fs.Stats 对象,而不是文件路径。
- Option ‘onlyFiles’ 只输出文件,而不是目录路径。
- 通过提供一个函数来比较两个字符串,以输出正确排序的输出顺序。
- Option ‘followSymbolicLinks’ 允许捆绑软链接,并指示是否遍历软链接。
- 增加了数百个测试用例,以避免非预期函数行为及性能退化。
- 与单元测试和性能测试相关的生成算法,以确保最佳性能和正确行为。
使用示例
基本用法
const fg = require('@bluelovers/fast-glob'); (async () => { const files = await fg(['**/*.js', '!node_modules/**']); console.log(files); })()
使用 globby 语法
比如需要将文件名 .min.css
和 .min.js
提取出来。可以这样:
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- ---------------- -------------------------- --- ------------------- ----
使用和 globs-mode 类似的语法
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- ----- ------------ ------------ --------------------- --------------------- ---- -------------- -------------- ----------------------- ---------------------- --- ------------------- ----
过滤
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- --------- ----------- -- - ------- ---------- -- - -- -------------------------- - ------ ------ - ---- - ------ ----- - - --- ------------------- ----
使用‘二进制模式’
-- -------------------- ---- ------- ----- -- - --------------------------------- ----- -------- ---------------------------- - ----- ----- - ----- ---------------------------- ----- ---- - ----- ------------------------------- ------ - ----------- ------------------------ ----- ----------- ----- ----------- ------ ------------- -- - ------ -- -- - ----- ----- - ----- ---- ------- ----------- -- - ----------- ----- --------- ----- ----- ----- ---------- ----- ---- -------- -- - ----- ----- - ----- ----------------------- ------ - ----------- -------- -- - --- ------------------- ----
只输出文件
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- --------- ----------- -- - ---------- ---- --- ------------------- ----
同步调用
-- -------------------- ---- ------- ----- -- - --------------------------------- ----- ----- - --------- --------- ----------- -- - ---------- ---- --- -------------------
比较输出文件的字符串
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- --------- ----------- -- - ------------------- ----- --------- ---- - -- ---- - ---- - ------ --- - ---- -- ---- - ---- - ------ -- - ---- - ------ -- - - --- ------------------- ----
解决软链
-- -------------------- ---- ------- ----- -- - --------------------------------- ------ -- -- - ----- ----- - ----- ---- -------------- --------------- -- - -------------------- ---- --- ------------------- ----
结论
@bluelovers/fast-glob 是一个非常实用的 Node.js 模块,可以用于快速、方便地匹配文件和目录,同时也提供了一些比 fast-glob 更全面、更强大的功能。如果你正在寻找一个最佳的 glob 功能模块,那么 @bluelovers/fast-glob 绝对是一个非常好的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067350890c4f72775838f8