@@ -18,13 +18,18 @@ const testDependencies = ['qunit', 'vite'];
1818
1919export default [
2020 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+ } ) ,
2833 templateCompilerConfig ( ) ,
2934] ;
3035
@@ -57,7 +62,7 @@ function esmConfig() {
5762 } ) ,
5863 resolveTS ( ) ,
5964 version ( ) ,
60- resolvePackages ( exposedDependencies ( ) , hiddenDependencies ( ) ) ,
65+ resolvePackages ( { ... exposedDependencies ( ) , ... hiddenDependencies ( ) } ) ,
6166 pruneEmptyBundles ( ) ,
6267 ] ,
6368 } ;
@@ -67,7 +72,7 @@ function renameEntrypoints(entrypoints, fn) {
6772 return Object . fromEntries ( Object . entries ( entrypoints ) . map ( ( [ k , v ] ) => [ fn ( k ) , v ] ) ) ;
6873}
6974
70- function legacyBundleConfig ( input , output , isDeveloping ) {
75+ function legacyBundleConfig ( input , output , { isDeveloping, isExternal } ) {
7176 let babelConfig = { ...sharedBabelConfig } ;
7277
7378 babelConfig . plugins = [ ...babelConfig . plugins , buildDebugMacroPlugin ( isDeveloping ) ] ;
@@ -87,6 +92,12 @@ function legacyBundleConfig(input, output, isDeveloping) {
8792 // modules and hands them to our classic AMD loader. All of those modules
8893 // need the __esModule marker too.
8994 freeze : false ,
95+
96+ globals : ( id ) => {
97+ return `require('${ id } ')` ;
98+ } ,
99+
100+ interop : 'esModule' ,
90101 } ,
91102 plugins : [
92103 amdDefineSupport ( ) ,
@@ -99,7 +110,7 @@ function legacyBundleConfig(input, output, isDeveloping) {
99110 } ) ,
100111 resolveTS ( ) ,
101112 version ( ) ,
102- resolvePackages ( exposedDependencies ( ) , hiddenDependencies ( ) ) ,
113+ resolvePackages ( { ... exposedDependencies ( ) , ... hiddenDependencies ( ) } , isExternal ) ,
103114 licenseAndLoader ( ) ,
104115 ] ,
105116 } ;
@@ -272,7 +283,7 @@ function resolveTS() {
272283 } ;
273284}
274285
275- export function resolvePackages ( ... depsList ) {
286+ export function resolvePackages ( deps , isExternal ) {
276287 return {
277288 enforce : 'pre' ,
278289 name : 'resolve-packages' ,
@@ -289,10 +300,12 @@ export function resolvePackages(...depsList) {
289300 return { external : true , id : pkgName } ;
290301 }
291302
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 ] ;
296309 }
297310
298311 let candidateStem = resolve ( projectRoot , 'packages' , source ) ;
@@ -419,19 +432,29 @@ function templateCompilerConfig() {
419432 // need to be discovered from ember.debug.js instead when running in the
420433 // browser, and stubbed to ember-template-compiler.js in node.
421434 const externals = {
422- '@ember/template-compilation' : `{ __registerTemplateCompiler(){} }` ,
435+ '@ember/template-compilation' : `{
436+ __esModule: true,
437+ __registerTemplateCompiler(){},
438+ }` ,
423439 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,
427452 }` ,
428- '@ember/-internals/glimmer' : `{ template: undefined }` ,
429- '@ember/application' : `undefined` ,
430453 } ;
431454 let config = legacyBundleConfig (
432455 './broccoli/amd-compat-entrypoints/ember-template-compiler.js' ,
433456 'ember-template-compiler.js' ,
434- true
457+ { isDeveloping : true }
435458 ) ;
436459 config . plugins . unshift ( {
437460 enforce : 'pre' ,
0 commit comments