@@ -18,13 +18,18 @@ const testDependencies = ['qunit', 'vite'];
18
18
19
19
export default [
20
20
esmConfig ( ) ,
21
- legacyBundleConfig ( './broccoli/amd-compat-entrypoints/ember.debug.js' , 'ember.debug.js' , true ) ,
22
- legacyBundleConfig ( './broccoli/amd-compat-entrypoints/ember.debug.js' , 'ember.prod.js' , false ) ,
23
- legacyBundleConfig (
24
- './broccoli/amd-compat-entrypoints/ember-testing.js' ,
25
- 'ember-testing.js' ,
26
- true
27
- ) ,
21
+ legacyBundleConfig ( './broccoli/amd-compat-entrypoints/ember.debug.js' , 'ember.debug.js' , {
22
+ isDeveloping : true ,
23
+ } ) ,
24
+ legacyBundleConfig ( './broccoli/amd-compat-entrypoints/ember.debug.js' , 'ember.prod.js' , {
25
+ isDeveloping : false ,
26
+ } ) ,
27
+ legacyBundleConfig ( './broccoli/amd-compat-entrypoints/ember-testing.js' , 'ember-testing.js' , {
28
+ isDeveloping : true ,
29
+ isExternal ( source ) {
30
+ return ! source . startsWith ( 'ember-testing' ) ;
31
+ } ,
32
+ } ) ,
28
33
templateCompilerConfig ( ) ,
29
34
] ;
30
35
@@ -57,7 +62,7 @@ function esmConfig() {
57
62
} ) ,
58
63
resolveTS ( ) ,
59
64
version ( ) ,
60
- resolvePackages ( exposedDependencies ( ) , hiddenDependencies ( ) ) ,
65
+ resolvePackages ( { ... exposedDependencies ( ) , ... hiddenDependencies ( ) } ) ,
61
66
pruneEmptyBundles ( ) ,
62
67
] ,
63
68
} ;
@@ -67,7 +72,7 @@ function renameEntrypoints(entrypoints, fn) {
67
72
return Object . fromEntries ( Object . entries ( entrypoints ) . map ( ( [ k , v ] ) => [ fn ( k ) , v ] ) ) ;
68
73
}
69
74
70
- function legacyBundleConfig ( input , output , isDeveloping ) {
75
+ function legacyBundleConfig ( input , output , { isDeveloping, isExternal } ) {
71
76
let babelConfig = { ...sharedBabelConfig } ;
72
77
73
78
babelConfig . plugins = [ ...babelConfig . plugins , buildDebugMacroPlugin ( isDeveloping ) ] ;
@@ -87,6 +92,12 @@ function legacyBundleConfig(input, output, isDeveloping) {
87
92
// modules and hands them to our classic AMD loader. All of those modules
88
93
// need the __esModule marker too.
89
94
freeze : false ,
95
+
96
+ globals : ( id ) => {
97
+ return `require('${ id } ')` ;
98
+ } ,
99
+
100
+ interop : 'esModule' ,
90
101
} ,
91
102
plugins : [
92
103
amdDefineSupport ( ) ,
@@ -99,7 +110,7 @@ function legacyBundleConfig(input, output, isDeveloping) {
99
110
} ) ,
100
111
resolveTS ( ) ,
101
112
version ( ) ,
102
- resolvePackages ( exposedDependencies ( ) , hiddenDependencies ( ) ) ,
113
+ resolvePackages ( { ... exposedDependencies ( ) , ... hiddenDependencies ( ) } , isExternal ) ,
103
114
licenseAndLoader ( ) ,
104
115
] ,
105
116
} ;
@@ -272,7 +283,7 @@ function resolveTS() {
272
283
} ;
273
284
}
274
285
275
- export function resolvePackages ( ... depsList ) {
286
+ export function resolvePackages ( deps , isExternal ) {
276
287
return {
277
288
enforce : 'pre' ,
278
289
name : 'resolve-packages' ,
@@ -289,10 +300,12 @@ export function resolvePackages(...depsList) {
289
300
return { external : true , id : pkgName } ;
290
301
}
291
302
292
- for ( let deps of depsList ) {
293
- if ( deps [ source ] ) {
294
- return deps [ source ] ;
295
- }
303
+ if ( isExternal ?. ( source ) ) {
304
+ return { external : true , id : source } ;
305
+ }
306
+
307
+ if ( deps [ source ] ) {
308
+ return deps [ source ] ;
296
309
}
297
310
298
311
let candidateStem = resolve ( projectRoot , 'packages' , source ) ;
@@ -419,19 +432,29 @@ function templateCompilerConfig() {
419
432
// need to be discovered from ember.debug.js instead when running in the
420
433
// browser, and stubbed to ember-template-compiler.js in node.
421
434
const externals = {
422
- '@ember/template-compilation' : `{ __registerTemplateCompiler(){} }` ,
435
+ '@ember/template-compilation' : `{
436
+ __esModule: true,
437
+ __registerTemplateCompiler(){},
438
+ }` ,
423
439
ember : `{
424
- get ENV() { return require('@ember/-internals/environment').ENV },
425
- get FEATURES() { return require('@ember/canary-features').FEATURES },
426
- get VERSION() { return require('ember/version').default },
440
+ __esModule: true,
441
+ default: {
442
+ get ENV() { return require('@ember/-internals/environment').ENV },
443
+ get FEATURES() { return require('@ember/canary-features').FEATURES },
444
+ get VERSION() { return require('ember/version').default },
445
+ },
446
+ }` ,
447
+ '@ember/-internals/glimmer' : `{
448
+ __esModule: true,
449
+ }` ,
450
+ '@ember/application' : `{
451
+ __esModule: true,
427
452
}` ,
428
- '@ember/-internals/glimmer' : `{ template: undefined }` ,
429
- '@ember/application' : `undefined` ,
430
453
} ;
431
454
let config = legacyBundleConfig (
432
455
'./broccoli/amd-compat-entrypoints/ember-template-compiler.js' ,
433
456
'ember-template-compiler.js' ,
434
- true
457
+ { isDeveloping : true }
435
458
) ;
436
459
config . plugins . unshift ( {
437
460
enforce : 'pre' ,
0 commit comments