@@ -818,44 +818,57 @@ function noop(builder, file, str){
818
818
819
819
function register ( builder , file , js ) {
820
820
var main = builder . config . main ;
821
+ var isMain = main == file ;
821
822
var orig = file ;
822
823
823
824
// strip ./
824
825
if ( './' == file . slice ( 0 , 2 ) ) file = file . slice ( 2 ) ;
825
826
826
- // rewrite main to index.js
827
- // so that require() still grabs
828
- // the correct file without aliases
829
- if ( file == main ) file = 'index.js' ;
830
-
831
827
// determine prefix
832
828
// TODO: should always be name / version combo
833
829
var prefix = builder . root
834
830
? builder . config . name
835
831
: builder . basename ;
836
832
837
-
838
833
// prefix
839
834
file = prefix + '/' + file ;
840
835
836
+ // rewrite requires for dependencies,
837
+ // and fix relative requires when .main
838
+ // is not index.js
841
839
js = requires ( js , function ( require ) {
842
840
var deps = builder . config . dependencies || { } ;
843
841
var path = require . path ;
844
842
var name = canonicalized ( path , deps ) || path ;
845
843
return 'require("' + name + '")' ;
846
844
} ) ;
847
845
846
+ // register the module
848
847
if ( builder . sourceUrls ) {
849
- js = JSON . stringify ( js + '//@ sourceURL=' + prefix + '/' + orig ) ;
848
+ js = JSON . stringify ( js + '//@ sourceURL=' + file ) ;
850
849
js = js . replace ( / \\ n / g, '\\n\\\n' ) ;
851
- return 'require.register("' + file + '", Function("exports, require, module",\n'
850
+ js = 'require.register("' + file + '", Function("exports, require, module",\n'
852
851
+ js
853
852
+ '\n));' ;
854
853
} else {
855
- return 'require.register("' + file + '", function(exports, require, module){\n'
854
+ js = 'require.register("' + file + '", function(exports, require, module){\n'
856
855
+ js
857
856
+ '\n});' ;
858
857
}
858
+
859
+ // main support
860
+ // TODO: dear god, this is nasty, doesnt belong
861
+ // in here but doing a separate tree walk is lame
862
+ // so screw it, works for now, need to rewrite this thing
863
+
864
+ // once we produce a dep tree first then we can completely
865
+ // remove all of this junk, as we'll know what all the mains
866
+ // are and can simply rewrite
867
+ if ( isMain && 'index.js' != orig ) {
868
+ js += '\nrequire.main("' + prefix + '", "' + orig + '")' ;
869
+ }
870
+
871
+ return js ;
859
872
}
860
873
861
874
/**
0 commit comments