@@ -122,8 +122,14 @@ module.exports = class DojoAMDMainTemplatePlugin {
122
122
}
123
123
}
124
124
125
+ function hasAMD ( chunk ) {
126
+ return chunk . getModules ( ) . some ( ( module ) => {
127
+ return module . isAMD ;
128
+ } ) ;
129
+ }
130
+
125
131
compilation . mainTemplate . plugin ( "bootstrap" , function ( source , chunk ) {
126
- if ( ! compilation . dojoLoaderDependenciesAdded ) {
132
+ if ( ! compilation . dojoLoaderDependenciesAdded || ! hasAMD ( chunk ) ) {
127
133
return source ;
128
134
}
129
135
const buf = [ ] ;
@@ -186,15 +192,15 @@ module.exports = class DojoAMDMainTemplatePlugin {
186
192
return this . asString ( buf ) ;
187
193
} ) ;
188
194
189
- compilation . mainTemplate . plugin ( "module-obj" , function ( source ) {
190
- if ( compilation . dojoLoaderDependenciesAdded ) {
195
+ compilation . mainTemplate . plugin ( "module-obj" , function ( source , chunk ) {
196
+ if ( compilation . dojoLoaderDependenciesAdded && hasAMD ( chunk ) ) {
191
197
source = source . replace ( "i: moduleId," , "i: req.absMidsById[moduleId] || moduleId," ) ;
192
198
}
193
199
return source ;
194
200
} ) ;
195
201
196
- compilation . mainTemplate . plugin ( "require-extensions" , function ( source ) {
197
- if ( ! compilation . dojoLoaderDependenciesAdded ) {
202
+ compilation . mainTemplate . plugin ( "require-extensions" , function ( source , chunk ) {
203
+ if ( ! compilation . dojoLoaderDependenciesAdded || ! hasAMD ( chunk ) ) {
198
204
return source ;
199
205
}
200
206
const buf = [ ] ;
@@ -208,14 +214,13 @@ module.exports = class DojoAMDMainTemplatePlugin {
208
214
buf . push ( "\tg: (function(){return this;})() // Easy access to global scope" ) ;
209
215
buf . push ( "};" ) ;
210
216
buf . push ( "var loaderScope = {document:document};" ) ;
211
- const modules = compilation . getModules ? compilation . getModules ( ) : compilation . modules ;
212
- const dojoLoaderModule = modules . find ( ( module ) => { return module . rawRequest === options . loader ; } ) ;
217
+ const dojoLoaderModule = compilation . modules . find ( ( module ) => { return module . rawRequest === options . loader ; } ) ;
213
218
if ( ! dojoLoaderModule ) {
214
219
throw Error ( "Can't locate " + options . loader + " in compilation" ) ;
215
220
}
216
221
var s = "var loaderConfig = " ;
217
222
if ( util . isString ( options . loaderConfig ) ) {
218
- const dojoLoaderConfig = modules . find ( ( module ) => { return module . rawRequest === options . loaderConfig ; } ) ;
223
+ const dojoLoaderConfig = compilation . modules . find ( ( module ) => { return module . rawRequest === options . loaderConfig ; } ) ;
219
224
s += this . requireFn + "(" + JSON . stringify ( dojoLoaderConfig . id ) + ");" ;
220
225
} else {
221
226
s += JSON . stringify ( options . loaderConfig ) ;
0 commit comments