Wrapper around miniglob / minimatch combo to allow multiple patterns matching and include-exclude ability
Adds multiples patterns matching and exlude ability. This is basically just a sugar API syntax where you can specify a list of includes and optional exclude patterns. It works by setting up the necessary miniglob "fileset" and filtering out the results using minimatch.
npm install fileset
Can be used with callback or emitter style.
foo/**/*.js *.md src/lib/**/*
The callback is optional since the fileset method return an instance of EventEmitter which emit different events you might use:
var fileset = require'fileset';fileset'**/*.js' '**.min.js'if err return console.errorerr;console.log'Files: ' fileslength;console.logfiles;;
var fileset = require'fileset';fileset'**.coffee README.md *.json Cakefile **.js' 'node_modules/**'on'match' console.logbindconsole 'error'on'include' console.logbindconsole 'includes'on'exclude' console.logbindconsole 'excludes'on'end' console.logbindconsole 'end';
fileset returns an instance of EventEmitter, with an
which is the array of Fileset objects (inheriting from
miniglob.Miniglob) that were used during the mathing process, should
you want to use them individually.
Check out the tests for more examples.
var results = filesetsync'*.md *.js' 'CHANGELOG.md node_modules/**/*.md node_modules/**/*.js';
The behavior should remain the same, although it lacks the last
options arguments to pass to internal
Mainly for a build tool with cake files, to provide me an easy way to get a list of files by either using glob or path patterns, optionally allowing exclude patterns to filter out the results.