config-file
Version:
Find and load a YAML or JSON config file (like .jshintrc, package.json, bower.json etc) from either a local project, installed npm module, or the user's home directory.
156 lines (97 loc) • 3.79 kB
Markdown
# config-file [](http://badge.fury.io/js/config-file)
> Find and load a YAML or JSON config file (like .jshintrc, package.json, bower.json etc) from either a local project, installed npm module, or the user's home directory.
## Heads up! Breaking changes
v0.3.0 was a complete refactor. The readme [API](#API) section describes the new API.
## Install
Install with [npm](https://www.npmjs.com/)
```sh
$ npm i config-file --save
```
## Usage
```js
var config = require('config-file');
```
## API
### [config](index.js#L29)
Returns an object from parsing JSON or YAML from the given config file. Uses `config.resovle` to resolve the filepath. If no filepath is specified, `config.resolve` falls back to 'package.json'
**Params**
* `filename` **{String}**: The name of the file to parse
* `options` **{Object}**: Optionally specify `{parse:'json'}` or `{parse:'yaml'}`
* `returns` **{Object}**
**Example**
```js
var opts = config('.jshintrc');
```
### [.npm](index.js#L53)
Parse a config file located in a locally installed npm package (in `node_modules`).
**Params**
* `moduleName` **{String}**: The name of the npm package to search in `node_modules`
* `filename` **{String}**: Name of the file to find.
* `options` **{Object}**
**Example**
```js
var data = config.npm('read-data', 'package.json');
//=> { name: "read-data", ... }
```
### [.global](index.js#L78)
Parse a config file in a globally installed npm package.
**Params**
* `moduleName` **{String}**: The name of the global module to search
* `filename` **{String}**: Name of the file to find.
* `options` **{Object}**
**Example**
```js
var data = config.global('verb-cli', 'package.json');
//=> { name: "verb-cli", ... }
```
### [.home](index.js#L100)
Return a filepath the user's home directory
**Params**
* `filepath` **{String}**: Filepath to find
* `options` **{Object}**
**Example**
```js
var data = config.home('.jshintrc');
```
### [.resolve](index.js#L120)
Returns the fully resolve path for the specified config file. Searches the local project first, then the user's home directory.
**Params**
* `filepath` **{String}**: Filepath to find
* `options` **{Object}**
* `returns` **{String}**: filepath to config file
**Example**
```js
var fp = config.resolve('.jshintrc');
//=> '/Users/jonschlinkert/dev/config-file/package.json'
```
### [.parse](index.js#L142)
Parse a config file. Same as using `config()`.
**Params**
* `filename` **{String}**: Name of the file to parse.
* `options` **{Object}**
* `returns` **{Object}**
**Example**
```js
var data = config.parse('.jshintrc');
```
## Related projects
* [global-modules](https://github.com/jonschlinkert/global-modules): The directory used by npm for globally installed npm modules.
* [look-up](https://github.com/jonschlinkert/look-up): Like findup-sync and supports the same features but 20x-40x faster on avg.
* [read-data](https://github.com/jonschlinkert/read-data): Read JSON or YAML files.
* [read-yaml](https://github.com/jonschlinkert/read-yaml): Very thin wrapper around js-yaml for directly reading in YAML files.
## Running tests
Install dev dependencies:
```sh
$ npm i -d && npm i -g verb-cli && npm test
```
## Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/config-file/issues/new)
## Author
**Jon Schlinkert**
+ [github/jonschlinkert](https://github.com/jonschlinkert)
+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
## License
Copyright © 2014-2015 [Jon Schlinkert](https://github.com/jonschlinkert)
Released under the MIT license.
***
_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on July 06, 2015._