78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
|
# deglob [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
|
||
|
|
||
|
[travis-image]: https://img.shields.io/travis/standard/deglob/master.svg
|
||
|
[travis-url]: https://travis-ci.org/standard/deglob
|
||
|
[npm-image]: https://img.shields.io/npm/v/deglob.svg
|
||
|
[npm-url]: https://npmjs.org/package/deglob
|
||
|
[downloads-image]: https://img.shields.io/npm/dm/deglob.svg
|
||
|
[downloads-url]: https://npmjs.org/package/deglob
|
||
|
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
|
||
|
[standard-url]: https://standardjs.com
|
||
|
|
||
|
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](https://standardjs.com). It seems useful outside of that tool, so I've attempted to extract it! :)
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```
|
||
|
npm install --save deglob
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
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)
|
||
|
})
|
||
|
})
|
||
|
```
|
||
|
|
||
|
## Ignoring files in package.json
|
||
|
`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:
|
||
|
```js
|
||
|
"config": {
|
||
|
"ignore": ['**/*.bad']
|
||
|
}
|
||
|
```
|
||
|
If you do not fancy the `config` key, provide a different one using the `configKey` option.
|
||
|
|
||
|
|
||
|
## Options
|
||
|
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
|
||
|
|
||
|
## Contributing
|
||
|
|
||
|
Contributions welcome! Please read the [contributing guidelines](CONTRIBUTING.md) first.
|
||
|
|
||
|
## License
|
||
|
|
||
|
[ISC](LICENSE.md)
|