@@ -330,7 +330,6 @@ class JsonpMainTemplatePlugin {
330330 ( source , chunk , hash ) => {
331331 if ( needChunkLoadingCode ( chunk ) ) {
332332 const withDefer = needEntryDeferringCode ( chunk ) ;
333- const chunkMap = chunk . getChildIdsByOrdersMap ( true ) . prefetch ;
334333 return Template . asString ( [
335334 source ,
336335 "" ,
@@ -340,6 +339,7 @@ class JsonpMainTemplatePlugin {
340339 "var chunkIds = data[0];" ,
341340 "var moreModules = data[1];" ,
342341 withDefer ? "var executeModules = data[2];" : "" ,
342+ "var prefetchChunks = data[3] || []" ,
343343 '// add "moreModules" to the modules object,' ,
344344 '// then flag all "chunkIds" as loaded and fire callback' ,
345345 "var moduleId, chunkId, i = 0, resolves = [];" ,
@@ -382,31 +382,18 @@ class JsonpMainTemplatePlugin {
382382 : "" ,
383383 "" ,
384384 "// chunk prefetching for javascript" ,
385- "" ,
386- `var chunkPrefetchMap = ${ JSON . stringify ( chunkMap , null , "\t" ) } ` ,
387- "" ,
388- "for(let j = 0;j < chunkIds.length; j++) {" ,
385+ "var head = document.getElementsByTagName('head')[0];" ,
386+ "prefetchChunks.forEach(function(chunkId) {" ,
389387 Template . indent ( [
390- "chunkId = chunkIds[j];" ,
391- "var chunkPrefetchData = chunkPrefetchMap[chunkId];" ,
392- "if(chunkPrefetchData) {" ,
388+ "if(installedChunks[chunkId] === undefined) {" ,
393389 Template . indent ( [
394- "var head = document.getElementsByTagName('head')[0];" ,
395- "chunkPrefetchData.forEach(function(chunkId) {" ,
396- Template . indent ( [
397- "if(installedChunks[chunkId] === undefined) {" ,
398- Template . indent ( [
399- "installedChunks[chunkId] = null;" ,
400- mainTemplate . hooks . linkPrefetch . call ( "" , chunk , hash ) ,
401- "head.appendChild(link);"
402- ] ) ,
403- "}"
404- ] ) ,
405- "});"
390+ "installedChunks[chunkId] = null;" ,
391+ mainTemplate . hooks . linkPrefetch . call ( "" , chunk , hash ) ,
392+ "head.appendChild(link);"
406393 ] ) ,
407394 "}"
408395 ] ) ,
409- "}"
396+ "}); "
410397 ] ) ,
411398 "};" ,
412399 withDefer
@@ -474,7 +461,11 @@ class JsonpMainTemplatePlugin {
474461 if ( needChunkLoadingCode ( chunk ) ) {
475462 return Template . asString ( [
476463 source ,
477- `webpackJsonpCallback([${ JSON . stringify ( chunk . ids ) } , {}])`
464+ `webpackJsonpCallback([${ JSON . stringify (
465+ chunk . ids
466+ ) } , {}, null, ${ JSON . stringify (
467+ chunk . getChildIdsByOrders ( ) . prefetch
468+ ) } ])`
478469 ] ) ;
479470 }
480471 return source ;
0 commit comments