Skip to content

Commit b545b51

Browse files
authored
Merge pull request webpack#6242 from nename0/6239-require-ensure-initial-chunks
WIP: Fix: require-ensure should not include initial chunks
2 parents b059e07 + 64c4350 commit b545b51

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

lib/Chunk.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,14 +404,14 @@ class Chunk {
404404
return this.addMultiplierAndOverhead(integratedModulesSize, options);
405405
}
406406

407-
getChunkMaps(includeEntries, realHash) {
407+
getChunkMaps(includeInitial, realHash) {
408408
const chunksProcessed = [];
409409
const chunkHashMap = {};
410410
const chunkNameMap = {};
411411
(function addChunk(chunk) {
412412
if(chunksProcessed.indexOf(chunk) >= 0) return;
413413
chunksProcessed.push(chunk);
414-
if(!chunk.hasRuntime() || includeEntries) {
414+
if(!chunk.isInitial() || includeInitial) {
415415
chunkHashMap[chunk.id] = realHash ? chunk.hash : chunk.renderedHash;
416416
if(chunk.name)
417417
chunkNameMap[chunk.id] = chunk.name;

lib/MainTemplate.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ module.exports = class MainTemplate extends Template {
9999
});
100100
this.plugin("require-extensions", (source, chunk, hash) => {
101101
const buf = [];
102-
if(chunk.chunks.length > 0) {
102+
const chunkMaps = chunk.getChunkMaps();
103+
// Check if there are non initial chunks which need to be imported using require-ensure
104+
if(Object.keys(chunkMaps.hash).length) {
103105
buf.push("// This file contains only the entry chunk.");
104106
buf.push("// The chunk loading function for additional chunks");
105107
buf.push(`${this.requireFn}.e = function requireEnsure(chunkId) {`);

test/statsCases/commons-chunk-min-size-0/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Hash: dc6038bec87a57d1a45e
22
Time: Xms
33
Asset Size Chunks Chunk Names
44
entry-1.js 25 bytes 0 [emitted] entry-1
5-
vendor-1.js 6.76 kB 1 [emitted] vendor-1
5+
vendor-1.js 4.83 kB 1 [emitted] vendor-1
66
[0] (webpack)/test/statsCases/commons-chunk-min-size-0/modules/a.js 22 bytes {1} [built]
77
[1] (webpack)/test/statsCases/commons-chunk-min-size-0/modules/b.js 22 bytes {1} [built]
88
[2] (webpack)/test/statsCases/commons-chunk-min-size-0/modules/c.js 22 bytes {1} [built]

test/statsCases/commons-plugin-issue-4980/expected.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Child
55
Asset Size Chunks Chunk Names
66
app.js 1.27 kB 0 [emitted] app
77
vendor.bd2b4219dfda1a951495.js 443 bytes 1 [emitted] vendor
8-
runtime.js 5.78 kB 2 [emitted] runtime
8+
runtime.js 3.84 kB 2 [emitted] runtime
99
[./constants.js] (webpack)/test/statsCases/commons-plugin-issue-4980/constants.js 87 bytes {1} [built]
1010
[./entry-1.js] (webpack)/test/statsCases/commons-plugin-issue-4980/entry-1.js 67 bytes {0} [built]
1111
[./submodule-a.js] (webpack)/test/statsCases/commons-plugin-issue-4980/submodule-a.js 59 bytes {0} [built]
@@ -16,7 +16,7 @@ Child
1616
Asset Size Chunks Chunk Names
1717
app.js 1.32 kB 0 [emitted] app
1818
vendor.bd2b4219dfda1a951495.js 443 bytes 1 [emitted] vendor
19-
runtime.js 5.78 kB 2 [emitted] runtime
19+
runtime.js 3.84 kB 2 [emitted] runtime
2020
[./constants.js] (webpack)/test/statsCases/commons-plugin-issue-4980/constants.js 87 bytes {1} [built]
2121
[./entry-2.js] (webpack)/test/statsCases/commons-plugin-issue-4980/entry-2.js 67 bytes {0} [built]
2222
[./submodule-a.js] (webpack)/test/statsCases/commons-plugin-issue-4980/submodule-a.js 59 bytes {0} [built]

test/statsCases/named-chunks-plugin/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Hash: ac63e5be974bcdfea3a3
22
Time: Xms
33
Asset Size Chunks Chunk Names
44
entry.js 345 bytes entry [emitted] entry
5-
manifest.js 5.78 kB manifest [emitted] manifest
5+
manifest.js 3.85 kB manifest [emitted] manifest
66
vendor.js 397 bytes vendor [emitted] vendor
77
[0] multi ./modules/a ./modules/b 40 bytes {vendor} [built]
88
[./entry.js] (webpack)/test/statsCases/named-chunks-plugin/entry.js 72 bytes {entry} [built]

0 commit comments

Comments
 (0)