diff --git a/src/ast/nodes/Program.ts b/src/ast/nodes/Program.ts index 9a23794c60c..e82cc2bf2b6 100644 --- a/src/ast/nodes/Program.ts +++ b/src/ast/nodes/Program.ts @@ -18,6 +18,9 @@ export default class Program extends NodeBase { private hasLoggedEffect = false; hasCachedEffects(): boolean { + if (!this.included) { + return false; + } return this.hasCachedEffect === null ? (this.hasCachedEffect = this.hasEffects(createHasEffectsContext())) : this.hasCachedEffect; diff --git a/test/chunking-form/samples/manual-chunk-not-included/_config.js b/test/chunking-form/samples/manual-chunk-not-included/_config.js new file mode 100644 index 00000000000..4ad3e9f1e3a --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_config.js @@ -0,0 +1,11 @@ +module.exports = { + description: 'handles manual chunks where the root is not part of the module graph', + options: { + input: ['main.js'], + output: { + manualChunks: { + manual: ['manual-entry.js'] + } + } + } +}; diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/generated-manual.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/generated-manual.js new file mode 100644 index 00000000000..f9e8bf57b21 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/generated-manual.js @@ -0,0 +1,5 @@ +define((function () { 'use strict'; + + console.log('included'); + +})); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/main.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/main.js new file mode 100644 index 00000000000..b9a9d643047 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/amd/main.js @@ -0,0 +1,5 @@ +define(['./generated-manual'], (function (manual) { 'use strict'; + + console.log('main'); + +})); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/generated-manual.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/generated-manual.js new file mode 100644 index 00000000000..46970f369e4 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/generated-manual.js @@ -0,0 +1,3 @@ +'use strict'; + +console.log('included'); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/main.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/main.js new file mode 100644 index 00000000000..f679e51bff2 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/cjs/main.js @@ -0,0 +1,5 @@ +'use strict'; + +require('./generated-manual.js'); + +console.log('main'); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/es/generated-manual.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/es/generated-manual.js new file mode 100644 index 00000000000..452029d8355 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/es/generated-manual.js @@ -0,0 +1 @@ +console.log('included'); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/es/main.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/es/main.js new file mode 100644 index 00000000000..ddeb648f149 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/es/main.js @@ -0,0 +1,3 @@ +import './generated-manual.js'; + +console.log('main'); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/system/generated-manual.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/system/generated-manual.js new file mode 100644 index 00000000000..f147b38fa45 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/system/generated-manual.js @@ -0,0 +1,10 @@ +System.register([], (function () { + 'use strict'; + return { + execute: (function () { + + console.log('included'); + + }) + }; +})); diff --git a/test/chunking-form/samples/manual-chunk-not-included/_expected/system/main.js b/test/chunking-form/samples/manual-chunk-not-included/_expected/system/main.js new file mode 100644 index 00000000000..3e762e61fd8 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/_expected/system/main.js @@ -0,0 +1,11 @@ +System.register(['./generated-manual.js'], (function () { + 'use strict'; + return { + setters: [null], + execute: (function () { + + console.log('main'); + + }) + }; +})); diff --git a/test/chunking-form/samples/manual-chunk-not-included/main.js b/test/chunking-form/samples/manual-chunk-not-included/main.js new file mode 100644 index 00000000000..8e6e9e0b963 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/main.js @@ -0,0 +1,2 @@ +import './manual-included'; +console.log('main'); diff --git a/test/chunking-form/samples/manual-chunk-not-included/manual-entry.js b/test/chunking-form/samples/manual-chunk-not-included/manual-entry.js new file mode 100644 index 00000000000..9947c39b198 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/manual-entry.js @@ -0,0 +1,5 @@ +import './manual-included'; + +function test() {} + +test(); diff --git a/test/chunking-form/samples/manual-chunk-not-included/manual-included.js b/test/chunking-form/samples/manual-chunk-not-included/manual-included.js new file mode 100644 index 00000000000..452029d8355 --- /dev/null +++ b/test/chunking-form/samples/manual-chunk-not-included/manual-included.js @@ -0,0 +1 @@ +console.log('included');