diff --git a/lib/core.js b/lib/core.js index fcb95d38..5375d69b 100644 --- a/lib/core.js +++ b/lib/core.js @@ -90,14 +90,15 @@ if (typeof require != 'undefined' && typeof process != 'undefined' && !process.b */ var parentModuleContext; -function getNodeModule(name) { +function getNodeModule(name, baseURL) { if (!isPlain(name)) throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.'); if (!parentModuleContext) { var Module = this._nodeRequire('module'); - parentModuleContext = new Module(process.cwd()); - parentModuleContext.paths = Module._nodeModulePaths(process.cwd()); + var base = baseURL.substr(isWindows ? 8 : 7); + parentModuleContext = new Module(base); + parentModuleContext.paths = Module._nodeModulePaths(base); } return parentModuleContext.require(name); } @@ -127,7 +128,7 @@ function coreResolve(name, parentName) { if (name.substr(0, 6) == '@node/') { if (!this._nodeRequire) throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.'); - this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6))))); + this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL)))); return name; }