@@ -280,6 +280,8 @@ class MiniCssExtractPlugin {
280280 baseDataPath : 'options' ,
281281 } ) ;
282282
283+ this . _sortedModulesCache = new WeakMap ( ) ;
284+
283285 this . options = Object . assign (
284286 { filename : DEFAULT_FILENAME , ignoreOrder : false } ,
285287 options
@@ -535,7 +537,15 @@ class MiniCssExtractPlugin {
535537 ? Array . from ( this . getChunkModules ( chunk , chunkGraph ) ) . filter (
536538 ( module ) => module . type === MODULE_TYPE
537539 )
538- : chunkGraph . getChunkModulesIterableBySourceType ( chunk , MODULE_TYPE ) ;
540+ : this . sortModules (
541+ compilation ,
542+ chunk ,
543+ chunkGraph . getChunkModulesIterableBySourceType (
544+ chunk ,
545+ MODULE_TYPE
546+ ) ,
547+ compilation . runtimeTemplate . requestShortener
548+ ) ;
539549
540550 if ( modules ) {
541551 const { hashFunction, hashDigest, hashDigestLength } = outputOptions ;
@@ -1076,8 +1086,14 @@ class MiniCssExtractPlugin {
10761086 return obj ;
10771087 }
10781088
1079- renderContentAsset ( compiler , compilation , chunk , modules , requestShortener ) {
1080- let usedModules ;
1089+ sortModules ( compilation , chunk , modules , requestShortener ) {
1090+ let usedModules = this . _sortedModulesCache . get ( chunk ) ;
1091+
1092+ if ( usedModules || ! modules ) {
1093+ return usedModules ;
1094+ }
1095+
1096+ modules = [ ...modules ] ;
10811097
10821098 const [ chunkGroup ] = chunk . groupsIterable ;
10831099 const moduleIndexFunctionName =
@@ -1215,6 +1231,19 @@ class MiniCssExtractPlugin {
12151231 usedModules = modules ;
12161232 }
12171233
1234+ this . _sortedModulesCache . set ( chunk , usedModules ) ;
1235+
1236+ return usedModules ;
1237+ }
1238+
1239+ renderContentAsset ( compiler , compilation , chunk , modules , requestShortener ) {
1240+ const usedModules = this . sortModules (
1241+ compilation ,
1242+ chunk ,
1243+ modules ,
1244+ requestShortener
1245+ ) ;
1246+
12181247 // TODO remove after drop webpack v4
12191248 const { ConcatSource, SourceMapSource, RawSource } = compiler . webpack
12201249 ? compiler . webpack . sources
0 commit comments