node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org »


globby Build Status

Extends glob with support for multiple patterns and exposes a Promise API


$ npm install --save globby


├── unicorn
├── cake
└── rainbow
const globby = require('globby');
globby(['*', '!cake']).then(paths => {
    //=> ['unicorn', 'rainbow'] 


globby(patterns, [options])

Returns a Promise for an array of matching paths.

globby.sync(patterns, [options])

Returns an array of matching paths.

globby.generateGlobTasks(patterns, [options])

Returns an array of objects in the format { pattern: string, opts: Object }, which can be passed as arguments to node-glob. This is useful for other globbing-related packages.

Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration.

globby.hasMagic(patterns, [options])

Returns a boolean of whether there are any special glob characters in the patterns.

Note that the options affect the results. If noext: true is set, then +(a|b) will not be considered a magic pattern. If the pattern has a brace expansion, like a/{b/c,x/y}, then that is considered magical, unless nobrace: true is set.


Type: string Array

See supported minimatch patterns.


Type: Object

See the node-glob options.

Globbing patterns

Just a quick overview.

  • * matches any number of characters, but not /
  • ? matches a single character, but not /
  • ** matches any number of characters, including /, as long as it's the only thing in a path part
  • {} allows for a comma-separated list of "or" expressions
  • ! at the beginning of a pattern will negate the match

Various patterns and expected matches.



MIT © Sindre Sorhus