路径匹配模块-glob
glob基于minimatch的再次开发,用于路径的匹配,如果你用过glup或则grunt,你一定印象深刻
安装
npm i glob
基础用法
glob(pattern, [options], cb)
pattern
匹配字符串,类似正则
可以是字符串,也可以是字符串数组
options
详情见options
cb
回调,签名如下cb(err:Error,matches:String[])
简单范例
glob("js/*.js",function (err, files) {
console.log(files)
});
标记
跟正则很类似的标记
?
匹配1个字符
*
匹配0或则多个字符
+
匹配1个或则多个字符
[]
匹配范围中的字符,如果用!或则^,就是取反
特有标记
!
取反
**
文件夹,以及子文件夹
glob('src/**/*.js',cb)
// 这样我们就不用列出src下所有子文件夹的名字,让js文件的匹配更加轻松
!(a|b|c)
a,b,c都不可以
*(a|b|c)
尽量多匹配,可以没有匹配到
+(a|b|c)
尽量多匹配,至少匹配一个
@(a|b|c)
匹配且必须匹配1个
特殊的.
简单的说,*,?,+匹配不到.
要想匹配到a/.b/c,那么a/*/c会失败,除非a/.*/c
还有个办法就是,在options里,注明{dot:true}
windows用户
虽然windows可以使用\和/,但是请在glob中只使用\