@@ -845,9 +845,10 @@ class MiniCssExtractPlugin {
845845 const { chunkGraph, chunk, runtimeRequirements } = this ;
846846 const {
847847 runtimeTemplate,
848- outputOptions : { crossOriginLoading } ,
848+ outputOptions : { chunkLoadingGlobal , crossOriginLoading } ,
849849 } = this . compilation ;
850850 const chunkMap = getCssChunkObject ( chunk , this . compilation ) ;
851+ const globalObject = runtimeTemplate . globalObject ;
851852 const { linkPreload, linkPrefetch } =
852853 JsonpChunkLoadingRuntimeModule . getCompilationHooks ( compilation ) ;
853854 const conditionMap = chunkGraph . getChunkConditionMap (
@@ -868,6 +869,9 @@ class MiniCssExtractPlugin {
868869 const withPreload = runtimeRequirements . has (
869870 RuntimeGlobals . preloadChunkHandlers
870871 ) ;
872+ const chunkLoadingGlobalExpr = `${ globalObject } [${ JSON . stringify (
873+ chunkLoadingGlobal
874+ ) } ]`;
871875
872876 if ( ! withLoading && ! withHmr ) {
873877 return "" ;
@@ -993,6 +997,23 @@ class MiniCssExtractPlugin {
993997 ) ,
994998 "};" ,
995999 "" ,
1000+ `var webpackJsonpCallback = ${ runtimeTemplate . basicFunction (
1001+ "parentChunkLoadingFunction, data" ,
1002+ [
1003+ runtimeTemplate . destructureArray ( [ "chunkIds" ] , "data" ) ,
1004+ "for(var i=0;i < chunkIds.length; i++) {" ,
1005+ Template . indent ( [
1006+ "var chunkId = chunkIds[i];" ,
1007+ "installedCssChunks[chunkId] = 0;" ,
1008+ ] ) ,
1009+ "}" ,
1010+ ]
1011+ ) } `,
1012+ "" ,
1013+ `var chunkLoadingGlobal = ${ chunkLoadingGlobalExpr } = ${ chunkLoadingGlobalExpr } || [];` ,
1014+ "chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));" ,
1015+ "chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));" ,
1016+ "" ,
9961017 `${
9971018 RuntimeGlobals . ensureChunkHandlers
9981019 } .miniCss = ${ runtimeTemplate . basicFunction (
@@ -1213,6 +1234,12 @@ class MiniCssExtractPlugin {
12131234 compilation . hooks . runtimeRequirementInTree
12141235 . for ( RuntimeGlobals . hmrDownloadUpdateHandlers )
12151236 . tap ( pluginName , handler ) ;
1237+ compilation . hooks . runtimeRequirementInTree
1238+ . for ( RuntimeGlobals . prefetchChunkHandlers )
1239+ . tap ( pluginName , handler ) ;
1240+ compilation . hooks . runtimeRequirementInTree
1241+ . for ( RuntimeGlobals . preloadChunkHandlers )
1242+ . tap ( pluginName , handler ) ;
12161243 } ) ;
12171244 }
12181245
0 commit comments