require-main v0.1.1
require-main
A Node module to load the main script of your project simply
Overview
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 script path explicitly, as below:
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 module easily.
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.jsonfrom having a wrongmainfield.require-main()throws an error if there is no script files in themainpath.
Installation
Install with npm. (Make sure you have installed Node.)
npm install --save-dev require-mainUsage
var requireMain = require('require-main');
var yourLib = requireMain();Or, even shorter:
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 field, requireMain() tries to load index.js in the current working directory.
License
Copyright (c) 2014 Shinnosuke Watanabe
Licensed under the MIT LIcense.