Take a list of glob patterns and return an array of file locations, respecting .gitignore
and allowing for ignore patterns via package.json
.
Giant swaths of this code were extracted from standard. It seems useful outside of that tool, so I've attempted to extract it! :)
npm install --save deglob
var deglob = require('deglob')
deglob(['**/*.js'], function(err, files) {
files.forEach(function(file) {
console.log('found file ' + file)
})
})
// pass in some options to customize!
var path = require('path')
var opts = {
cwd: path.join(__dirname, 'someDir'),
useGitIgnore: false,
usePackageJson: false
}
deglob(['**/*.js'], opts, function(err, files) {
files.forEach(function(file) {
console.log('found file ' + file)
})
})
deglob
will look for a package.json
file by default and use any ignore patterns defined.
To define patterns in package.json add somthing like this:
"config": {
"ignore": ['**/*.bad']
}
If you do not fancy the config
key, provide a different one using the configKey
option.
Option | Default | Description |
---|---|---|
useGitIgnore | true | Turn on/off allowing ignore patterns via .gitignore |
usePackageJson | true | Turn on/off allowing ignore patterns via package.json config. |
configKey | 'config' | This is the parent key in package.json to look for the ignore attribute. |
gitIgnoreFile | '.gitignore' | Name of the .gitignore file look for (probably best to leave it default) |
ignore | [] | List of additional ignore patterns to use |
cwd | process.cwd() | This is the working directory to start the deglobbing |
Contributions welcome! Please read the contributing guidelines first.