find-module

find a module from a require path asyncronously using custom module folders

find-module

Find a module specified by a require path using Node's module resolution.

npm install find-module
var findModule = require('find-module');
 
findModule('./some-path', {
    dirname: 'some-parent-dir' // the directory from which ./some-path should be resolved 
}, function(errfilename) {
    console.log('some-path resolved to '+filename+' from some-parent-dir');
});
 
// or dont provide a callback to use the sync version 
 
var filename = findModule('./some-path', {
    dirname: 'some-parent-dir' // the directory from which ./some-path should be resolved 
});
 
console.log('some-path resolved to '+filename+' from some-parent-dir');

If you pass a module path ('my-module') find-module by default will look for a node_modules folder to find my-module. If you want to use a different module folder you can set the modules option

findModule('my-module', {
    modules: 'custom_modules',
    dirname: 'some-parent-dir'
}, ...);

When you resolve a path find-module by default will look for path+'.js' and path+'.json' if the path does not exist. If you want to look for other kind of extensions set the extensions option

findModule('my-module', {
    dirname: 'some-parent-dir',
    extensions: ['txt']
}, ...);

Combine the modules and extensions settings to roll out your own module finder. A template module finder could look like this

findModule('my-template', {
    dirname: 'some-parent-dir',
    modules: 'templates',
    extensions: ['html']
}, ...);

MIT