ensure full Node path checking with @node/x requires

This commit is contained in:
guybedford 2016-06-21 16:17:31 +02:00
parent b12938b5aa
commit 9fd707a9a0

View File

@ -89,22 +89,17 @@ if (typeof require != 'undefined' && typeof process != 'undefined' && !process.b
a URL.
*/
var parentModuleContext;
function getNodeModule(name) {
if (!isPlain(name))
throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.');
var nodePath = this._nodeRequire('path');
// try to load from node_modules
var module;
try {
module = this._nodeRequire(nodePath.resolve(process.cwd(), 'node_modules', name));
if (!parentModuleContext) {
var Module = this._nodeRequire('module');
parentModuleContext = new Module(process.cwd());
parentModuleContext.paths = Module._nodeModulePaths(process.cwd());
}
catch(e) {
// fall back to direct require (in theory this is core modules only, which should really be filtered)
if (e.code == 'MODULE_NOT_FOUND')
module = this._nodeRequire(name);
}
return module;
return parentModuleContext.require(name);
}
function coreResolve(name, parentName) {