globs是一種模式匹配铡恕,如在命令行使用ls *.js或者如在.gitignore中添加build/*睦尽。
在解析路徑之前,如果模式中有大括號(hào)尖淘,包裹的部分將被展開(kāi)運(yùn)算。如a{b/c/d,bcd}將被展開(kāi)可以匹配到a/b/c/d和abcd衫贬。
常見(jiàn)的匹配符號(hào)
* 匹配0個(gè)或多個(gè)字符德澈。如./.js,匹配統(tǒng)計(jì)目錄中所有的js文件固惯。
? 匹配1個(gè)字符
[...] 匹配一個(gè)范圍的字符梆造,類(lèi)似于正則表達(dá)式。如果中括號(hào)中第一個(gè)字符是!或^葬毫,代表匹配不再這個(gè)范圍內(nèi)的字符镇辉。
** 匹配任意路徑 如:.///js,可以匹配到./a.js也可以匹配到./a/b.js贴捡。
!(pattern|pattern|pattern) Matches anything that does not match any of the patterns provided.
?(pattern|pattern|pattern) Matches zero or one occurrence of the patterns provided.
+(pattern|pattern|pattern) Matches one or more occurrences of the patterns provided.
(a|b|c) Matches zero or more occurrences of the patterns provided
@(pattern|pat|pat?erN) Matches exactly one of the patterns provided
glob常用的方法
glob(pattern, [options], cb)
如:
glob('./**/*.js, (err, files) => {
// files 是一個(gè)數(shù)組忽肛,每一項(xiàng)是匹配到的文件名,即項(xiàng)目中所有的js文件烂斋。
}