NPM酷库,每天两分钟,了解一个流行NPM库。

经常,我们的程序需要对磁盘文件进行管理,就需要读取磁盘上的文件列表,然后可能会需要判断文件夹或文件名,还可能需要递归扫描子目录。

glob

图片描述

今天我们要了解的库 glob,就是专门用来扫描磁盘文件,并返回我们需要的文件类型。

const glob = require("glob")

glob("**/*.js", function (error, files) {
  // files 就是我们得到的文件的列表
})

上述代码中,我们会递归查找当前目录下的所有.js 文件,因为我们使用了 **/*.js 通配符做查找条件。

glob 支持的通配符模式

glob 支持强大的匹配规则,但是要注意glob的匹配规则并不是正则表达式,详细支持如下:

  • * 匹配0到多个字符
  • ? 匹配一个字符
  • [...] 匹配一个字符列表,类似正则表达式的字符列表
  • !(pattern|pattern|pattern) 反向匹配括号内的模式
  • ?(pattern|pattern|pattern) 匹配0或1个括号内的模式
  • +(pattern|pattern|pattern) 匹配至少1个括号内的模式
  • *(pattern|pattern|pattern) 匹配0到多个括号内的模式
  • @(pattern|pat*|pat?erN) 精确匹配括号内的模式
  • ** 匹配0到多个子目录,递归匹配子目录

其他特性

除下上文中的异步接口,glob还支持 glob.sync() 同步接口,另外,glob还支持大量的参数选项,比如cwd,root 等等,具体请参考官方文档。

参考文档

glob: https://github.com/isaacs/nod...

欢迎关注公众号:梁兴臣

梁兴臣

每天了解一个NPM库,一年后成为Node.js高手


脉冲云_梁兴臣
616 声望194 粉丝

脉冲云CTO,JS全栈开发,DevOps实施,开发体验优化,开发效率提升