@@ -77,15 +77,26 @@ exports.setModuleUrl = function(name, subst) {
77
77
var loader = function ( moduleName , cb ) {
78
78
if ( moduleName === "ace/theme/textmate" || moduleName === "./theme/textmate" )
79
79
return cb ( null , require ( "./theme/textmate" ) ) ;
80
- return console . error ( "loader is not configured" ) ;
80
+ if ( typeof module . require == "function" ) {
81
+ // backwards compatibility for node
82
+ try {
83
+ var req = "require" ;
84
+ return cb ( null , module [ req ] ( moduleName ) ) ;
85
+ } catch ( e ) {
86
+ }
87
+ }
88
+ if ( customLoader )
89
+ return customLoader ( moduleName , cb ) ;
90
+ console . error ( "loader is not configured" ) ;
81
91
} ;
82
-
92
+ var customLoader ;
83
93
exports . setLoader = function ( cb ) {
84
- loader = cb ;
94
+ customLoader = cb ;
85
95
} ;
86
96
87
97
exports . dynamicModules = Object . create ( null ) ;
88
98
exports . $loading = { } ;
99
+ exports . $loaded = { } ;
89
100
exports . loadModule = function ( moduleName , onLoad ) {
90
101
var module , moduleType ;
91
102
if ( Array . isArray ( moduleName ) ) {
@@ -105,6 +116,7 @@ exports.loadModule = function(moduleName, onLoad) {
105
116
106
117
var afterLoad = function ( ) {
107
118
loader ( moduleName , function ( err , module ) {
119
+ if ( module ) exports . $loaded [ moduleName ] = module ;
108
120
exports . _emit ( "load.module" , { name : moduleName , module : module } ) ;
109
121
var listeners = exports . $loading [ moduleName ] ;
110
122
exports . $loading [ moduleName ] = null ;
@@ -130,10 +142,7 @@ exports.loadModule = function(moduleName, onLoad) {
130
142
}
131
143
} ) ;
132
144
} else {
133
- try {
134
- module = require ( moduleName ) ;
135
- } catch ( e ) { }
136
- load ( module ) ;
145
+ load ( module || exports . $loaded [ moduleName ] ) ;
137
146
}
138
147
} ;
139
148
1 commit comments
barisusakli commentedon Jun 26, 2023
We've been using ace-editor 1.22.1 with webpack for a while. We use the below file to load ace-editor.
After that we can use it in our own modules like
Same code on 1.23.0 results in 404 errors for the mode and theme files.