60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
|
# rcloader
|
||
|
|
||
|
[![Travis CI](https://travis-ci.org/spalger/rcloader.svg)](https://travis-ci.org/spalger/rcloader)
|
||
|
|
||
|
For build system plugins that need to fetch relative config files (like .jshintrc).
|
||
|
|
||
|
## Features
|
||
|
- Find the closest config file (like .jshintrc) relative to the file you are linting
|
||
|
- Lookups are cached to limit IO operations
|
||
|
- Accepts input directly from plugin consumers to
|
||
|
- specifiy a file that should always be used
|
||
|
- specify a default file
|
||
|
- specify overrides
|
||
|
- disable file lookup
|
||
|
|
||
|
## Install
|
||
|
```sh
|
||
|
npm install rcloader
|
||
|
```
|
||
|
|
||
|
## Use
|
||
|
This plugin was written to specifically address this issue for a couple of gulp plugins.
|
||
|
|
||
|
### within a gulp plugin
|
||
|
```js
|
||
|
var RcLoader = require('rcloader');
|
||
|
var map = require('map-stream');
|
||
|
|
||
|
module.exports = function MyGulpPlugin(options) {
|
||
|
var rcLoader = new RcLoader('.configfilename', options);
|
||
|
|
||
|
return map(function (file, cb) {
|
||
|
// get the options for this file specifically
|
||
|
rcLoader.for(file.path, function (err, fileOpts) {
|
||
|
// do something cool
|
||
|
|
||
|
// send the file along
|
||
|
cb(null, file);
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
```
|
||
|
|
||
|
If you would rather, just skip the callback and it will run synchronously.
|
||
|
```js
|
||
|
var fileOpts = rcLoader.for(file.path, options);
|
||
|
```
|
||
|
|
||
|
## Options
|
||
|
The second argument to the `RcLoader` constructor should be the options that plugin consumers define, and it can take a few different forms.
|
||
|
|
||
|
**If the user specifies a string**, it is used as a path to the only config file that they care about. Calling `rcLoader.for(path)` will always return a copy of the config file at that path.
|
||
|
|
||
|
**If the user specifies an object**, the following keys will be stripped from it:
|
||
|
|
||
|
- `lookup`, Boolean: Find the closest config file each time `.for()` is called. default is true, unless `options` is a path.
|
||
|
- `defaultFile`, string: Specify a default configuration file.
|
||
|
|
||
|
If `defaultFile` is not specified, all values except `lookup` will override values found in the config file.
|