Node.js 文件路径匹配工具 globby

sindresorhus 开源的文件路径匹配工具 globby,目前在 GitHub 上获得 2,643 颗星。

正文顶部截图

globby 是基于 Node.js 的文件路径匹配库,在 glob 的基础上扩展了更多实用功能。它支持多种匹配模式,可以帮助开发者快速筛选指定路径下的文件。

globby 支持 Promise 和异步迭代器 API,也提供同步方法。开发者可以根据使用场景选择合适的调用方式。它默认支持 .gitignore 文件中的规则,自动忽略匹配的文件,无需额外配置。globby 可以处理包含特殊字符的文件路径,避免转义错误导致的匹配失败。它支持扩展的 glob 模式,包括否定模式、扩展匹配、括号匹配等,可以满足复杂的筛选需求。globby 可以返回绝对路径或相对路径,也支持返回文件的统计信息,方便后续处理。

README区域截图

在前端构建工具中,globby 常用来筛选需要处理的源文件。例如在打包脚本中,通过 globby 匹配所有需要编译的 JavaScript 文件,排除 node_modules 目录。在脚本开发中,它可以用来批量查找指定类型的文件,例如扫描项目中所有的 markdown 文档,或查找指定后缀的配置文件。在自动化任务中,globby 可以快速定位需要操作的文件路径,例如批量重命名文件、批量替换文件内容等场景。

globby 的安装通过 npm 完成,执行命令 npm install globby 即可完成安装。基本使用方式如下:

import { globby } from 'globby';
// 匹配当前目录下所有 js 文件,排除 node_modules 目录
const paths = await globby(['*.js', '!node_modules']);
console.log(paths);

同步调用方式:

import { globbySync } from 'globby';
const paths = globbySync(['*.js', '!node_modules']);

globby 支持多种配置参数。通过 cwd 参数可以指定工作目录,所有匹配路径都会基于该目录计算。通过 ignore 参数可以添加额外的忽略规则,优先级高于 .gitignore 文件。通过 absolute 参数设置为 true 时,返回的路径为绝对路径。通过 stats 参数设置为 true 时,返回结果会包含文件的统计信息,包括文件大小、创建时间、修改时间等。

globby 还支持流式处理大数量的文件匹配结果,通过 globbyStream 方法可以返回可读流,逐批处理匹配到的文件路径,避免一次性加载大量路径导致的内存占用过高。对于需要处理大量文件的场景,这种方式可以有效提升性能。

开源地址:https://github.com/sindresorhus/globby

ps://github.com/sindresorhus/globby

更多推荐