介绍
Node.js中的glob模块是一个用于匹配文件路径的模块,它可以基于通配符模式快速找到符合条件的文件或文件夹路径。
在使用glob模块时,需要先安装glob模块,可以使用npm进行安装:
npm install glob --save
安装完成后,就可以开始使用glob模块了。以下是一些常见的使用方法:
glob.sync(pattern[, options])
同步地获取满足指定通配符模式的文件或文件夹路径列表。比如,获取所有的.js文件路径可以这样写:
const glob = require('glob');
const files = glob.sync('*.js');
console.log(files);
glob(pattern[, options], callback)
异步地获取满足指定通配符模式的文件或文件夹路径列表。比如,获取所有的.js文件路径可以这样写:
const glob = require('glob');
glob('*.js', (err, files) => {
if (err) throw err;
console.log(files);
});
- 通配符模式
在glob模块中,支持以下通配符:
*
匹配0个或多个字符?
匹配1个字符**
匹配所有文件和零个或多个目录
以下是一些通配符模式的示例:
// 匹配所有.js文件
const files1 = glob.sync('*.js');
// 匹配所有的.js文件和.css文件
const files2 = glob.sync(['*.js', '*.css']);
// 匹配所有的.js文件和.js文件所在的子目录下的.js文件
const files3 = glob.sync('**/*.js');
// 匹配所有目录下的.json文件
const files4 = glob.sync('**/*.json');
以上就是关于node的glob的一些基本介绍和使用方法。在实际的开发中,可以根据不同的需求选择不同的通配符模式,使用glob模块来进行文件路径的匹配和选择,从而提高开发效率和减少重复性的工作。
实例
const path = require('path')
const {
globSync
} = require('glob')
const jsfiles = globSync('mulu1/**/*.js', { ignore: 'node_modules/**' })
const jsfiles3 = globSync('mulu1/*.js', { ignore: 'node_modules/**' })
const jsfiles2 = globSync('mulu1/**/*.{js,css}', { ignore: 'node_modules/**' })
const jsfiles1 = globSync(['mulu1/**/*.js', 'mulu1/**/*.css'], { ignore: 'node_modules/**' })
const jsfiles3Path = path.resolve(__dirname, jsfiles3[0])
// [ 'mulu1/1.js' ]
console.log(jsfiles3)
// Users/zhangyu/web/web-all/node-all/glob-test/src/mulu1/1.js
console.log(jsfiles3Path)
相关地址
https://www.npmjs.com/package/glob
https://github.com/isaacs/node-glob