node:详解glob模块获取文件路径

介绍

Node.js中的glob模块是一个用于匹配文件路径的模块,它可以基于通配符模式快速找到符合条件的文件或文件夹路径。

在使用glob模块时,需要先安装glob模块,可以使用npm进行安装:

npm install glob --save

安装完成后,就可以开始使用glob模块了。以下是一些常见的使用方法:

  1. glob.sync(pattern[, options])

同步地获取满足指定通配符模式的文件或文件夹路径列表。比如,获取所有的.js文件路径可以这样写:

const glob = require('glob');
const files = glob.sync('*.js');
console.log(files);
  1. glob(pattern[, options], callback)

异步地获取满足指定通配符模式的文件或文件夹路径列表。比如,获取所有的.js文件路径可以这样写:

const glob = require('glob');
glob('*.js', (err, files) => {
  if (err) throw err;
  console.log(files);
});
  1. 通配符模式

在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

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/132849597