node的glob模块允许你使用 *等符号, 来写一个glob规则,像在shell里一样,获取匹配对应规则的文件.
这个glob工具基于javascript.它使用了 minimatch 库来进行匹配
用法:
首先下载glob包:
npm install glob
调用格式:
var glob = require("glob") // options 是可选的 glob("**/*.js", options, function (er, files) { // files 是匹配到的文件的数组. // 如果 `nonull` 选项被设置为true, 而且没有找到任何文件,那么files就是glob规则本身,而不是空数组 // er是当寻找的过程中遇的错误 })
"globs" 就是模型,比如当你在命令行里输入 ls *.js, 又或者是你在 .gitignore 文件里写的 bulid/* 这些.
在解析路径模型的时候, 大括号里用多个逗号隔开的内容会被展开, 里面的部分也可以包含"/" ,比如 a{/b/c, bcd} 会被展开成 a/b/c 和 abcd
路径中的某一段可以使用下面的这些字符表示,他们各自都有很炫的作用:
- 1. * : 匹配该路径段中0个或多个任意字符:
-
//*:匹配路径中某部分:0个或多个字符 glob("js/*.js",function (er, files) { console.log(files) })
获取js目录下的所有js文件.(不包括以'.'开头的文件)
- 2. ? : 匹配该路径段中1个任意字符:
-
//?:匹配路径中某部分:1个字符 glob("js/?.js",function (er, files) { console.log(files) })
获取js目录下所有名字只有1个字的js.
- 3. [...] : 匹配该路径段中在指定范围内字符:
注意不能组合,只能是其中一个字符 -
//[]:匹配