Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/okunishinishi/node-findout

Node.js module to find out a module.
https://github.com/okunishinishi/node-findout

Last synced: 2 months ago
JSON representation

Node.js module to find out a module.

Awesome Lists containing this project

README

        

findout
==========

[![Build Status][bd_travis_shield_url]][bd_travis_url]
[![Code Climate][bd_codeclimate_shield_url]][bd_codeclimate_url]
[![Code Coverage][bd_codeclimate_coverage_shield_url]][bd_codeclimate_url]
[![npm Version][bd_npm_shield_url]][bd_npm_url]
[![JS Standard][bd_standard_shield_url]][bd_standard_url]

[bd_repo_url]: https://github.com/okunishinishi/node-findout
[bd_travis_url]: http://travis-ci.org/okunishinishi/node-findout
[bd_travis_shield_url]: http://img.shields.io/travis/okunishinishi/node-findout.svg?style=flat
[bd_travis_com_url]: http://travis-ci.com/okunishinishi/node-findout
[bd_travis_com_shield_url]: https://api.travis-ci.com/okunishinishi/node-findout.svg?token=
[bd_license_url]: https://github.com/okunishinishi/node-findout/blob/master/LICENSE
[bd_codeclimate_url]: http://codeclimate.com/github/okunishinishi/node-findout
[bd_codeclimate_shield_url]: http://img.shields.io/codeclimate/github/okunishinishi/node-findout.svg?style=flat
[bd_codeclimate_coverage_shield_url]: http://img.shields.io/codeclimate/coverage/github/okunishinishi/node-findout.svg?style=flat
[bd_gemnasium_url]: https://gemnasium.com/okunishinishi/node-findout
[bd_gemnasium_shield_url]: https://gemnasium.com/okunishinishi/node-findout.svg
[bd_npm_url]: http://www.npmjs.org/package/findout
[bd_npm_shield_url]: http://img.shields.io/npm/v/findout.svg?style=flat
[bd_standard_url]: http://standardjs.com/
[bd_standard_shield_url]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg

Find out a module.

Installation
-----

```bash
npm install findout --save
```

Usage
----

`findout(name)` works like `require()`, but has a lot more locations to search.

```javascript
'use strict'

const findout = require('findout')

// Resolve a module path.
let pathOfFoo = findout.resolve('foo')

// Find and require a module.
let foo = findout('foo', {
cwd: __dirname // Lookup from current directory.
})

```

How It Works
------------

When you call `findout` for "foo" with '/bar/baz' as current working directory:

```javascript
findout('foo', {
cwd: '/bar/baz'
})
```

and it will try the following ways,

1. `require('foo')`
2. `require('/bar/baz/foo')`
3. `require('/bar/baz/node_modules/foo')`
4. `require('/bar/foo')`
5. `require('/bar/node_modules/foo')`
6. `require('/foo')`
7. `require('/node_modules/foo')`

If it still can't find any, throws an error.

Options
-------

| Key | Type | Default | Description |
| --- | --- | --- | --- |
| cwd | string | process.cwd() | Working directory path. |
| safe | boolean | false | No throw when not found. |

License
-------
This software is released under the [MIT License](https://github.com/okunishinishi/node-findout/blob/master/LICENSE).