5 var path = require('path');
6 var Module = require('module');
10 var getModule = function(dir) {
11 var rootPath = dir ? path.resolve(dir) : process.cwd();
12 var rootName = path.join(rootPath, '@root');
13 var root = modules[rootName];
15 root = new Module(rootName);
16 root.filename = rootName;
17 root.paths = Module._nodeModulePaths(rootPath);
18 modules[rootName] = root;
23 var requireRelative = function(requested, relativeTo) {
24 var root = getModule(relativeTo);
25 return root.require(requested);
28 requireRelative.resolve = function(requested, relativeTo) {
29 var root = getModule(relativeTo);
30 return Module._resolveFilename(requested, root);
33 module.exports = requireRelative;