@@ -326,14 +326,14 @@ if (process.platform === 'win32') {
326
326
// 'index.' character codes
327
327
var indexChars = [ 105 , 110 , 100 , 101 , 120 , 46 ] ;
328
328
var indexLen = indexChars . length ;
329
- Module . _resolveLookupPaths = function ( request , parent ) {
329
+ Module . _resolveLookupPaths = function ( request , parent , newReturn ) {
330
330
if ( NativeModule . nonInternalExists ( request ) ) {
331
- return [ request , [ ] ] ;
331
+ debug ( 'looking for %j in []' , request ) ;
332
+ return ( newReturn ? null : [ request , [ ] ] ) ;
332
333
}
333
334
334
- var reqLen = request . length ;
335
335
// Check for relative path
336
- if ( reqLen < 2 ||
336
+ if ( request . length < 2 ||
337
337
request . charCodeAt ( 0 ) !== 46 /*.*/ ||
338
338
( request . charCodeAt ( 1 ) !== 46 /*.*/ &&
339
339
request . charCodeAt ( 1 ) !== 47 /*/*/ ) ) {
@@ -355,15 +355,18 @@ Module._resolveLookupPaths = function(request, parent) {
355
355
}
356
356
}
357
357
358
- return [ request , paths ] ;
358
+ debug ( 'looking for %j in %j' , request , paths ) ;
359
+ return ( newReturn ? ( paths . length > 0 ? paths : null ) : [ request , paths ] ) ;
359
360
}
360
361
361
362
// with --eval, parent.id is not set and parent.filename is null
362
363
if ( ! parent || ! parent . id || ! parent . filename ) {
363
364
// make require('./path/to/foo') work - normally the path is taken
364
365
// from realpath(__filename) but with eval there is no filename
365
366
var mainPaths = [ '.' ] . concat ( Module . _nodeModulePaths ( '.' ) , modulePaths ) ;
366
- return [ request , mainPaths ] ;
367
+
368
+ debug ( 'looking for %j in %j' , request , mainPaths ) ;
369
+ return ( newReturn ? mainPaths : [ request , mainPaths ] ) ;
367
370
}
368
371
369
372
// Is the parent an index module?
@@ -413,7 +416,9 @@ Module._resolveLookupPaths = function(request, parent) {
413
416
debug ( 'RELATIVE: requested: %s set ID to: %s from %s' , request , id ,
414
417
parent . id ) ;
415
418
416
- return [ id , [ path . dirname ( parent . filename ) ] ] ;
419
+ var parentDir = [ path . dirname ( parent . filename ) ] ;
420
+ debug ( 'looking for %j in %j' , id , parentDir ) ;
421
+ return ( newReturn ? parentDir : [ id , parentDir ] ) ;
417
422
} ;
418
423
419
424
@@ -472,16 +477,12 @@ Module._resolveFilename = function(request, parent, isMain) {
472
477
return request ;
473
478
}
474
479
475
- var resolvedModule = Module . _resolveLookupPaths ( request , parent ) ;
476
- var id = resolvedModule [ 0 ] ;
477
- var paths = resolvedModule [ 1 ] ;
480
+ var paths = Module . _resolveLookupPaths ( request , parent , true ) ;
478
481
479
482
// look up the filename first, since that's the cache key.
480
- debug ( 'looking for %j in %j' , id , paths ) ;
481
-
482
483
var filename = Module . _findPath ( request , paths , isMain ) ;
483
484
if ( ! filename ) {
484
- var err = new Error ( " Cannot find module '" + request + "'" ) ;
485
+ var err = new Error ( ` Cannot find module '${ request } '` ) ;
485
486
err . code = 'MODULE_NOT_FOUND' ;
486
487
throw err ;
487
488
}
@@ -564,7 +565,7 @@ Module.prototype._compile = function(content, filename) {
564
565
if ( ! resolvedArgv ) {
565
566
// we enter the repl if we're not given a filename argument.
566
567
if ( process . argv [ 1 ] ) {
567
- resolvedArgv = Module . _resolveFilename ( process . argv [ 1 ] , null ) ;
568
+ resolvedArgv = Module . _resolveFilename ( process . argv [ 1 ] , null , false ) ;
568
569
} else {
569
570
resolvedArgv = 'repl' ;
570
571
}
0 commit comments