| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/rcloader/ |
Upload File : |
# rcloader
[](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.