Skip to content

Commit 23e1f7c

Browse files
committed
install Promise early in chunk cache
IE executes script very early when cached fixes webpack#4472
1 parent 0c137cb commit 23e1f7c

File tree

7 files changed

+13
-11
lines changed

7 files changed

+13
-11
lines changed

lib/JsonpMainTemplatePlugin.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,20 @@ JsonpMainTemplatePlugin.prototype.apply = function(mainTemplate) {
9292
"return installedChunks[chunkId][2];"
9393
]),
9494
"}",
95-
"// start chunk loading",
96-
"var head = document.getElementsByTagName('head')[0];",
97-
this.applyPluginsWaterfall("jsonp-script", "", chunk, hash),
9895
"",
96+
"// setup Promise in chunk cache",
9997
"var promise = new Promise(function(resolve, reject) {",
10098
this.indent([
10199
"installedChunks[chunkId] = [resolve, reject];"
102100
]),
103101
"});",
104102
"installedChunks[chunkId][2] = promise;",
105103
"",
104+
"// start chunk loading",
105+
"var head = document.getElementsByTagName('head')[0];",
106+
this.applyPluginsWaterfall("jsonp-script", "", chunk, hash),
106107
"head.appendChild(script);",
108+
"",
107109
"return promise;"
108110
]);
109111
});

test/statsCases/aggressive-splitting-on-demand/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cd45585186d59208602b.js 1.96 kB 1 [emitted]
66
6b94c231e016c5aaccdb.js 1.94 kB 2 [emitted]
77
fd0985cee894c4f3f1a6.js 1.94 kB 3 [emitted]
88
d9fc46873c8ea924b895.js 979 bytes 4 [emitted]
9-
beecea47f9a8ded3c298.js 7.41 kB 6 [emitted] main
9+
beecea47f9a8ded3c298.js 7.46 kB 6 [emitted] main
1010
b08c507d4e1e05cbab45.js 985 bytes 9 [emitted]
1111
5d50e858fe6e559aa47c.js 977 bytes 11 [emitted]
1212
Entrypoint main = beecea47f9a8ded3c298.js

test/statsCases/chunks/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Time: Xms
44
0.bundle.js 238 bytes 0 [emitted]
55
1.bundle.js 108 bytes 1 [emitted]
66
2.bundle.js 204 bytes 2 [emitted]
7-
bundle.js 6.05 kB 3 [emitted] main
7+
bundle.js 6.1 kB 3 [emitted] main
88
chunk {0} 0.bundle.js 54 bytes {3} [rendered]
99
> [5] (webpack)/test/statsCases/chunks/index.js 3:0-16
1010
[2] (webpack)/test/statsCases/chunks/c.js 54 bytes {0} [built]

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.7 kB 1 [emitted] vendor-1
5+
vendor-1.js 6.76 kB 1 [emitted] vendor-1
66
chunk {0} entry-1.js (entry-1) 0 bytes {1} [initial] [rendered]
77
chunk {1} vendor-1.js (vendor-1) 329 bytes [entry] [rendered]
88
[0] (webpack)/test/statsCases/commons-chunk-min-size-0/modules/a.js 22 bytes {1} [built]

test/statsCases/limit-chunk-count-plugin/expected.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Child
1616
Time: Xms
1717
Asset Size Chunks Chunk Names
1818
0.bundle.js 592 bytes 0 [emitted]
19-
bundle.js 6.06 kB 1 [emitted] main
19+
bundle.js 6.12 kB 1 [emitted] main
2020
chunk {0} 0.bundle.js 118 bytes {1} [rendered]
2121
[0] (webpack)/test/statsCases/limit-chunk-count-plugin/a.js 22 bytes {0} [built]
2222
[1] (webpack)/test/statsCases/limit-chunk-count-plugin/b.js 22 bytes {0} [built]
@@ -31,7 +31,7 @@ Child
3131
Asset Size Chunks Chunk Names
3232
0.bundle.js 445 bytes 0 [emitted]
3333
1.bundle.js 204 bytes 1 [emitted]
34-
bundle.js 6.05 kB 2 [emitted] main
34+
bundle.js 6.11 kB 2 [emitted] main
3535
chunk {0} 0.bundle.js 74 bytes {2} [rendered]
3636
[0] (webpack)/test/statsCases/limit-chunk-count-plugin/a.js 22 bytes {0} [built]
3737
[2] (webpack)/test/statsCases/limit-chunk-count-plugin/c.js 30 bytes {0} [built]
@@ -48,7 +48,7 @@ Child
4848
0.bundle.js 204 bytes 0 [emitted]
4949
1.bundle.js 195 bytes 1 [emitted]
5050
2.bundle.js 283 bytes 2 [emitted]
51-
bundle.js 6.04 kB 3 [emitted] main
51+
bundle.js 6.09 kB 3 [emitted] main
5252
chunk {0} 0.bundle.js 44 bytes {2} {3} [rendered]
5353
[1] (webpack)/test/statsCases/limit-chunk-count-plugin/b.js 22 bytes {0} [built]
5454
[4] (webpack)/test/statsCases/limit-chunk-count-plugin/e.js 22 bytes {0} [built]

test/statsCases/optimize-chunks/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Time: Xms
88
4.js 140 bytes 4, 6 [emitted] chunk
99
5.js 306 bytes 5, 3 [emitted] cir2 from cir1
1010
6.js 80 bytes 6 [emitted] ac in ab
11-
main.js 6.72 kB 7 [emitted] main
11+
main.js 6.77 kB 7 [emitted] main
1212
chunk {0} 0.js (cir1) 81 bytes {3} {5} {7} [rendered]
1313
> duplicate cir1 from cir2 [3] (webpack)/test/statsCases/optimize-chunks/circular2.js 1:0-79
1414
> duplicate cir1 [7] (webpack)/test/statsCases/optimize-chunks/index.js 13:0-54

test/statsCases/preset-verbose/expected.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Time: Xms
44
0.js 238 bytes 0 [emitted]
55
1.js 108 bytes 1 [emitted]
66
2.js 204 bytes 2 [emitted]
7-
main.js 6.04 kB 3 [emitted] main
7+
main.js 6.09 kB 3 [emitted] main
88
Entrypoint main = main.js
99
chunk {0} 0.js 54 bytes {3} [rendered]
1010
[2] (webpack)/test/statsCases/preset-verbose/c.js 54 bytes {0} [depth 1] [built]

0 commit comments

Comments
 (0)