Fixes #3047 -- Fixes module.paths when running directly with no explicit passed-in files.

This commit is contained in:
Jeremy Ashkenas 2013-10-20 17:50:13 -03:00
parent c820e0241e
commit a5513c45d0
2 changed files with 8 additions and 3 deletions

View File

@ -103,14 +103,15 @@
});
exports.run = function(code, options) {
var answer, mainModule, _ref;
var answer, dir, mainModule, _ref;
if (options == null) {
options = {};
}
mainModule = require.main;
mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';
mainModule.moduleCache && (mainModule.moduleCache = {});
mainModule.paths = require('module')._nodeModulePaths(path.dirname(fs.realpathSync(options.filename || '.')));
dir = options.fileName ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.');
mainModule.paths = require('module')._nodeModulePaths(dir);
if (!helpers.isCoffee(mainModule.filename) || require.extensions) {
answer = compile(code, options);
code = (_ref = answer.js) != null ? _ref : answer;

View File

@ -107,7 +107,11 @@ exports.run = (code, options = {}) ->
mainModule.moduleCache and= {}
# Assign paths for node_modules loading
mainModule.paths = require('module')._nodeModulePaths path.dirname fs.realpathSync options.filename or '.'
dir = if options.fileName
path.dirname fs.realpathSync options.filename
else
fs.realpathSync '.'
mainModule.paths = require('module')._nodeModulePaths dir
# Compile.
if not helpers.isCoffee(mainModule.filename) or require.extensions