External module "matcher"
Type aliases
Pattern
Pattern
: string | RegExp | test | Matcher | (string | RegExp | test | Matcher)[]
Functions
isGlob
- isGlob(pattern: string): boolean
-
Parameters
Returns boolean
match
- match(path: string, pattern: Pattern, baseDir?: string, ignoreCase?: boolean): boolean
-
Parameters
-
path: string
-
-
Optional baseDir: string
-
Optional ignoreCase: boolean
Returns boolean
表示一个匹配模式,可以是通配符、正则表达式、自定义函数、匹配器或以上模式组成的数组
通配符
在通配符中可以使用以下特殊字符:
?
: 匹配固定一个字符,但/
和文件名开头的.
除外*
: 匹配任意个字符,但/
和文件名开头的.
除外**
: 匹配任意个字符,但文件名开头的.
除外[abc]
: 匹配方括号中的任一个字符[a-z]
: 匹配 a 到 z 的任一个字符[!abc]
: 匹配方括号中的任一个字符以外的字符{abc,xyz}
: 匹配大括号中的任一种模式\
: 表示转义字符,如\[
表示[
按普通字符处理!xyz
:如果通配符以!
开头,表示排除匹配的项,注意如果排除了父文件夹,出于性能考虑,无法重新包含其中的子文件*
和**
的区别在于**
可以匹配任意级文件夹,而*
只能匹配一级, 但如果通配符中没有/
(末尾的除外),则通配符只需匹配文件名部分foo.js
dir/foo.js
dir/sub/foo.js
*
、**
和?
不匹配以.
开头的文件名,要允许匹配,应写成{.,}*
如果通配符以
/
结尾,表示匹配文件夹;如果匹配了文件夹,等价于匹配内部的所有子文件默认地,通配符只负责逐字匹配,所以
./
、../
等符号不会被特殊处理(除了开头的./
)如果设置了
baseDir
,则通配符只匹配绝对路径:../
\
作为分隔符[]
、{}
、\
(仅 Windows)作普通字符匹配正则表达式
正则表达式的源是一个固定以
/
为分隔符的相对路径自定义函数
函数接收原始路径为参数,如果函数返回
true
表示匹配该路径,如:function match(path) { return path.endsWith(".js") }
匹配器
可以从现成匹配器复制新的匹配器
数组
可以将以上模式自由组合成数组,只要匹配数组中任一个模式,就认定匹配当前模式