npm glob

什么是glob?

glob是由普通字符和/或通配字符组成的字符串,用于匹配文件路径。可以利用一个或多个glob在文件系统中定位文件

这是JavaScript中的全局实现。它使用minimatch 库进行匹配。

使用

使用npm安装

npm install glob
const glob = require('glob')
// options is optional
glob("**/*.js", options, function (er, files) {
  // files is an array of filenames.
  // If the `nonull` option is set, and nothing
  // was found, then files is ["**/*.js"]
  // er is an error object or null.
})

glob Primer (glob 引言)

“ Globs”是您ls .js在命令行或build/类似.gitignore文件中执行操作时键入的模式。

在解析路径零件模式之前,将支撑部分扩展为一组。括号部分以开头,{结尾为},其中包含任意多个逗号分隔的部分。括号部分可能包含斜杠字符,因此a{/b/c,bcd}将扩展为a/b/c和abcd。

在路径部分中使用以下字符具有特殊的魔术含义:

  • 在单个路径部分中匹配0个或更多字符
  • ? 符合1个字元
  • [...]匹配一个字符范围,类似于RegExp范围。如果范围的第一个字符是!或,^则它匹配不在范围内的任何字符。
  • !(pattern|pattern|pattern) 匹配与提供的任何模式都不匹配的任何内容。
  • ?(pattern|pattern|pattern) 匹配零个或一次出现的提供的模式。
  • +(pattern|pattern|pattern) 匹配提供的模式的一个或多个出现。
  • *(a|b|c) 匹配零个或多个出现的提供的模式
  • @(pattern|pat*|pat?erN) 完全匹配提供的一种模式
  • **如果路径部分中只有一个“ globstar”,则它将匹配零个或多个搜索匹配项的目录和子目录。它不对符号链接的目录进行爬网。

如果文件或目录路径部分以a.作为第一个字符,则它将与任何全局模式都不匹配,除非该模式的对应路径部分也以a.作为其第一个字符。

例如,该模式a/./c将与处的文件匹配a/.b/c。但是,该模式a//c不会,因为*它不是以点字符开头。

通过dot:true在选项中进行设置,可以使glob将点视为普通字符 。

方法

glob.hasMagic(pattern,[options])

true如果模式中有任何特殊字符,则返回, false否则返回。

请注意,这些选项会影响结果。如果noext:true在options对象中设置了,那么+(a|b)将不会被视为魔术模式。如果模式具有大括号扩展名(如a/{b/c,x/y} 这样),则认为这是神奇的,除非nobrace:true在选项中设置了该扩展名。

glob(pattern,[options],cb)

  • pattern {String} 要匹配的图案
  • options {Object}
  • cb {Function}
    • err {Error | null}
    • matches {Array} 找到与模式匹配的文件名
      执行异步全局搜索

glob.sync(pattern,[options])

  • pattern {String} 要匹配的图案
  • options {Object}
  • 返回:{Array}找到与模式匹配的文件名
    执行同步全局搜索。

资料
glob npm

原文地址:https://www.cnblogs.com/dehenliu/p/14479917.html