简介
glob 是一个 Node.js 的文件查找模块,可以根据通配符模式匹配文件路径。使用 glob 可以方便地在文件系统中查找、筛选和处理文件。
安装 glob
首先需要在项目中安装 glob 模块。可以通过以下命令来安装:
npm install glob --save-dev
使用 glob
基本用法
通过定义匹配规则,可以使用 glob 快速查找匹配的文件列表。以下是一些基本的 glob 规则:
*
匹配任意数量的字符,不包括/
。**
匹配任意数量的字符,包括/
。?
匹配任意单个字符,不包括/
。[...]
匹配指定范围内的任意单个字符。!(pattern|pattern|pattern)
匹配不符合指定模式之一的字符串。
举个例子,假设我们有以下文件列表:
src/ ├── app.js ├── index.html └── utils/ ├── string.js └── math.js
如果我们想要查找所有 JavaScript 文件,可以使用以下 glob 规则:
-- -------------------- ---- ------- ----- ---- - ---------------- --------------------- ----- ------ -- - -- ----- - ------------------- - ---- - ------------------- - ---
上面的代码将会输出以下结果:
[ 'src/app.js', 'src/utils/string.js', 'src/utils/math.js' ]
高级用法
除了基本的文件查找之外,glob 还支持一些高级的用法。
获取匹配规则
可以通过 glob.hasMagic(pattern)
方法来检查指定的模式是否包含通配符。如果包含,则返回 true;否则返回 false。
console.log(glob.hasMagic('src/**/*.js')); // true console.log(glob.hasMagic('src/app.js')); // false
指定忽略模式
可以通过 ignore
选项来指定需要忽略的文件或者目录。例如:
glob('./src/**/*', { ignore: './src/utils' }, (err, files) => { if (err) { console.error(err); } else { console.log(files); } });
上面的代码将会输出以下结果:
[ 'src/app.js', 'src/index.html' ]
返回绝对路径
可以通过 absolute
选项来返回文件的绝对路径。例如:
glob('./src/**/*.js', { absolute: true }, (err, files) => { if (err) { console.error(err); } else { console.log(files); } });
上面的代码将会输出以下结果:
[ '/Users/username/project/src/app.js', '/Users/username/project/src/utils/string.js', '/Users/username/project/src/utils/math.js' ]
总结
通过 glob 可以方便地查找指定规则的文件列表,并进行处理。在使用时,需要注意通配符的使用以及一些高级选项的设置。
参考代码:https://github.com/isaacs/node-glob
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/51763