File tree Expand file tree Collapse file tree 5 files changed +39
-4
lines changed Expand file tree Collapse file tree 5 files changed +39
-4
lines changed Original file line number Diff line number Diff line change 121121 } else {
122122 def ( moduleName , function ( ) {
123123 //Get the original name, since relative requires may be
124- //resolved differently in node (issue #202)
125- var originalName = hasProp ( context . registry , moduleName ) &&
126- context . registry [ moduleName ] . map . originalName ;
124+ //resolved differently in node (issue #202). Also, if relative,
125+ //make it relative to the URL of the item requesting it
126+ //(issue #393)
127+ var dirName ,
128+ map = hasProp ( context . registry , moduleName ) &&
129+ context . registry [ moduleName ] . map ,
130+ parentMap = map && map . parentMap ,
131+ originalName = map && map . originalName ;
132+
133+ if ( originalName . charAt ( 0 ) === '.' && parentMap ) {
134+ dirName = parentMap . url . split ( '/' ) ;
135+ dirName . pop ( ) ;
136+ originalName = dirName . join ( '/' ) + '/' + originalName ;
137+ }
127138
128139 try {
129140 return ( context . config . nodeRequire || req . nodeRequire ) ( originalName ) ;
Original file line number Diff line number Diff line change @@ -2,4 +2,5 @@ node allNode.js
22node ../r.js all.js
33node node/syncMap/syncMap.js
44node node/pluginLocalId/test.js
5- node node/syncRequire/main.js
5+ node node/syncRequire/main.js
6+ node node/nodeRelative/main.js
Original file line number Diff line number Diff line change 1+ var requirejs = require ( "../../../r.js" ) ;
2+
3+ requirejs . config ( {
4+ baseUrl : __dirname ,
5+ paths : {
6+ lamp : 'other/src/lamp'
7+ }
8+ } ) ;
9+
10+ requirejs ( [ 'lamp' ] , function ( lamp ) {
11+ console . log ( 'lamp name ' + ( lamp . name === 'lamp' ? 'PASSED' : 'FAILED' ) ) ;
12+ console . log ( 'light name ' + ( lamp . light . name === 'light' ? 'PASSED' : 'FAILED' ) ) ;
13+ } ) ;
Original file line number Diff line number Diff line change 1+ module . exports = {
2+ name : 'light'
3+ } ;
Original file line number Diff line number Diff line change 1+ //Load a node lib that is relative.
2+ define ( [ '../lib/light' ] , function ( light ) {
3+ return {
4+ name : 'lamp' ,
5+ light : light
6+ } ;
7+ } ) ;
You can’t perform that action at this time.
0 commit comments