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高手
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。