@@ -33,21 +33,22 @@ module.exports = function resolve(x, options, callback) {
3333
3434 var extensions = opts . extensions || [ '.js' ] ;
3535 var basedir = opts . basedir || path . dirname ( caller ( ) ) ;
36+ var parent = opts . filename || basedir ;
3637
3738 opts . paths = opts . paths || [ ] ;
3839
3940 if ( / ^ (?: \. \. ? (?: \/ | $ ) | \/ | ( [ A - Z a - z ] : ) ? [ / \\ ] ) / . test ( x ) ) {
40- var res = path . resolve ( basedir , x ) ;
41+ var res = path . resolve ( parent , x ) ;
4142 if ( x === '..' || x . slice ( - 1 ) === '/' ) res += '/' ;
42- if ( / \/ $ / . test ( x ) && res === basedir ) {
43+ if ( / \/ $ / . test ( x ) && res === parent ) {
4344 loadAsDirectory ( res , opts . package , onfile ) ;
4445 } else loadAsFile ( res , opts . package , onfile ) ;
45- } else loadNodeModules ( x , basedir , function ( err , n , pkg ) {
46+ } else loadNodeModules ( x , parent , function ( err , n , pkg ) {
4647 if ( err ) cb ( err ) ;
4748 else if ( core [ x ] ) return cb ( null , x ) ;
4849 else if ( n ) return cb ( null , n , pkg ) ;
4950 else {
50- var moduleError = new Error ( "Cannot find module '" + x + "' from '" + basedir + "'" ) ;
51+ var moduleError = new Error ( "Cannot find module '" + x + "' from '" + parent + "'" ) ;
5152 moduleError . code = 'MODULE_NOT_FOUND' ;
5253 cb ( moduleError ) ;
5354 }
@@ -60,7 +61,7 @@ module.exports = function resolve(x, options, callback) {
6061 if ( err ) cb ( err ) ;
6162 else if ( d ) cb ( null , d , pkg ) ;
6263 else {
63- var moduleError = new Error ( "Cannot find module '" + x + "' from '" + basedir + "'" ) ;
64+ var moduleError = new Error ( "Cannot find module '" + x + "' from '" + parent + "'" ) ;
6465 moduleError . code = 'MODULE_NOT_FOUND' ;
6566 cb ( moduleError ) ;
6667 }
0 commit comments