diff --git a/src/Chunk.ts b/src/Chunk.ts index e7b31b5680a..359e02716ed 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -782,6 +782,9 @@ export default class Chunk { continue; } const chunkDep = this.renderedDependencies!.get(chunk)!; + if (!chunkDep) { + continue; + } const { imports, reexports } = chunkDep; const importedByReexported = reexports?.find( ({ reexported }) => reexported === exportName diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_config.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_config.js new file mode 100644 index 00000000000..7772cc95c37 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_config.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'handles doing a namespace reexport of a reexport', + options: { + output: { + preserveModules: true + } + } +}; diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/dep.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/dep.js new file mode 100644 index 00000000000..031d5da68f7 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/dep.js @@ -0,0 +1,7 @@ +define(['exports'], (function (exports) { 'use strict'; + + const value = 'foo'; + + exports.value = value; + +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/main.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/main.js new file mode 100644 index 00000000000..4be01e4b3a8 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/main.js @@ -0,0 +1,5 @@ +define(['./reexport', './dep'], (function (reexport, dep) { 'use strict'; + + console.log(dep.value); + +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/reexport.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/reexport.js new file mode 100644 index 00000000000..7092f3ac843 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/amd/reexport.js @@ -0,0 +1,5 @@ +define((function () { 'use strict'; + + console.log('reexport'); + +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/dep.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/dep.js new file mode 100644 index 00000000000..baf8e2d9969 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/dep.js @@ -0,0 +1,5 @@ +'use strict'; + +const value = 'foo'; + +exports.value = value; diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/main.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/main.js new file mode 100644 index 00000000000..532f4eb3659 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/main.js @@ -0,0 +1,6 @@ +'use strict'; + +require('./reexport.js'); +var dep = require('./dep.js'); + +console.log(dep.value); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/reexport.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/reexport.js new file mode 100644 index 00000000000..319ed64fc1a --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/cjs/reexport.js @@ -0,0 +1,3 @@ +'use strict'; + +console.log('reexport'); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/dep.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/dep.js new file mode 100644 index 00000000000..ff45a89931e --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/dep.js @@ -0,0 +1,3 @@ +const value = 'foo'; + +export { value }; diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/main.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/main.js new file mode 100644 index 00000000000..882ae81d92e --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/main.js @@ -0,0 +1,4 @@ +import './reexport.js'; +import { value } from './dep.js'; + +console.log(value); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/reexport.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/reexport.js new file mode 100644 index 00000000000..639e7055010 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/es/reexport.js @@ -0,0 +1 @@ +console.log('reexport'); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/dep.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/dep.js new file mode 100644 index 00000000000..4cd439dba63 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/dep.js @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const value = exports('value', 'foo'); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/main.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/main.js new file mode 100644 index 00000000000..dc82dc8904d --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/main.js @@ -0,0 +1,14 @@ +System.register(['./reexport.js', './dep.js'], (function () { + 'use strict'; + var value; + return { + setters: [null, function (module) { + value = module.value; + }], + execute: (function () { + + console.log(value); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/reexport.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/reexport.js new file mode 100644 index 00000000000..281427db4f6 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/_expected/system/reexport.js @@ -0,0 +1,10 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log('reexport'); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/dep.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/dep.js new file mode 100644 index 00000000000..481f5a3fb18 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/dep.js @@ -0,0 +1 @@ +export const value = 'foo'; diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/main.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/main.js new file mode 100644 index 00000000000..0fb6785265b --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/main.js @@ -0,0 +1,3 @@ +import { value } from './reexport2'; + +console.log(value); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport.js new file mode 100644 index 00000000000..c77533c0c52 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport.js @@ -0,0 +1,2 @@ +export { value } from './dep.js'; +console.log('reexport'); diff --git a/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport2.js b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport2.js new file mode 100644 index 00000000000..e537ea94935 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-namespace-reexport-reexport/reexport2.js @@ -0,0 +1 @@ +export * from './reexport.js';