globby(译)

扩展glob,支持多重模式,暴露一个Promise API。

安装

npm install --save globby  

用法

|—— unicorn
|—— cake
|—— rainbow
const globby = require('globby');  
globby(['*', '!cake']).then(paths => {  
    console.log(paths);
    //=> ['unicorn', 'rainbow'] 
});

API

globby(patterns[,options])

返回一个promise,这个promise会resolve 匹配到的路径组。

globby.sync(patterns[,options])

返回匹配到的路径数组。

globby.generateGlobTasks(patterns [,options])

返回一个数组,数组里的对象使用这种格式{pattern: String,opts:Object}, 这个数组可以作为node-glob 的参数。这个对于其它与glob相关的包很有用。

注意,要避免多次运行相同的任务,因为他们包含了文件系统的缓存。应该在每次运行这个方法的时候确保你考虑到了文件系统的变化。

globby.hasMagic(patterns, [options])

返回一个代表着patterns中是否有glob特殊字符的Boolean值。 注意:options会影响到结果。如果设置了noext: true,那么+(a|b)不会被当作魔法模式。如果匹配模式有一个花括号,像a/{b/c,x/y},那么它会被当作魔法模式,除非设置了nobrace:true

patterns

Type: String Array
查看支持的minimatch 模式

options

Type: Object
查看 node-glob options

Globbing patterns

速览。

  • *匹配任意多个除/以外的字符。
  • ? 匹配单个除/以外的字符。
  • ** 匹配任意多个字符,包括/,只要它是路径中唯一的部分。
  • {}允许逗号分隔的“或”表达式列表。
  • ! 在一个模式的开头,对模式的结果取反。

licat

继续阅读此作者的更多文章