Load the project's main script simply
npm install require-main



A Node module to load the [main][main] script of your project simply
require-main is useful for developing npm modules. When we write a test for a npm module, usually we should load the module itself with require() by specifying the [main][main] script path explicitly, as below:
``javascript
var yourLib = require('./'); // Or, something like "../lib/runner.js"
assert(yourLib, 'Your module is loaded.');
`
Instead of such a hard coding, we can use require-main to load the [main][main] module easily.
`javascript
var yourLib = require('require-main')();
assert(yourLib, 'Your module is loaded.');
`
require-main offers the following advantages:
* It keeps your test code simple even if your test directory has a complicated structure.
* It prevents your package.json from having a wrong main field.require-main()
* throws an error if there is no script files in the main path.
Install with npm. (Make sure you have installed Node.)
``
npm install --save-dev require-main
`javascript`
var requireMain = require('require-main');
var yourLib = requireMain();
Or, even shorter:
`javascript`
var yourLib = require('require-main')();
requireMain() returns the main module of the first package.json in the __dirname directory or the nearest parent directory.
If the package.json has no [main][main] field, requireMain() tries to load index.js` in the current working directory.
Copyright (c) 2014 Shinnosuke Watanabe
Licensed under the MIT LIcense.
[main]: https://www.npmjs.org/doc/package.json.html#main