@@ -45,12 +45,15 @@ module.exports = {
4545 },
4646 optimization: {
4747 splitChunks: {
48- chunks: " initial" ,
49- minSize: 0 , // This is example is too small to create commons chunks
50- name: " common" ,
5148 cacheGroups: {
49+ commons: {
50+ chunks: " initial" ,
51+ minChunks: 2 ,
52+ minSize: 0 // This is example is too small to create commons chunks
53+ },
5254 vendor: {
5355 test: / node_modules/ ,
56+ chunks: " initial" ,
5457 name: " vendor" ,
5558 enforce: true
5659 }
@@ -67,7 +70,7 @@ module.exports = {
6770# dist/vendor.js
6871
6972``` javascript
70- (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[3 ],{
73+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[5 ],{
7174
7275/** */ 1 :
7376/* !*********************************!*\
@@ -94,10 +97,10 @@ module.exports = "vendor2";
9497}]);
9598```
9699
97- # dist/common .js
100+ # dist/commons ~ pageA ~ pageB ~ pageC .js
98101
99102``` javascript
100- (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[4 ],{
103+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[3 ],{
101104
102105/** */ 3 :
103106/* !*********************!*\
@@ -108,7 +111,15 @@ module.exports = "vendor2";
108111
109112module .exports = " utility2" ;
110113
111- /** */ }),
114+ /** */ })
115+
116+ }]);
117+ ```
118+
119+ # dist/commons~ pageB~ pageC.js
120+
121+ ``` javascript
122+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[4 ],{
112123
113124/** */ 6 :
114125/* !*********************!*\
@@ -259,7 +270,7 @@ module.exports = "utility3";
259270/** ****/
260271/** ****/
261272/** ****/ // add entry module to deferred list
262- /** ****/ deferredModules .push ([0 ,3 ,4 ]);
273+ /** ****/ deferredModules .push ([0 ,3 ,5 ]);
263274/** ****/ // run deferred modules when ready
264275/** ****/ return checkDeferredModules ();
265276/** ****/ })
@@ -432,7 +443,7 @@ module.exports = "utility1";
432443/** ****/
433444/** ****/
434445/** ****/ // add entry module to deferred list
435- /** ****/ deferredModules .push ([4 ,3 ,4 ]);
446+ /** ****/ deferredModules .push ([4 ,3 ,4 , 5 ]);
436447/** ****/ // run deferred modules when ready
437448/** ****/ return checkDeferredModules ();
438449/** ****/ })
@@ -591,7 +602,7 @@ module.exports = "pageB";
591602/** ****/
592603/** ****/
593604/** ****/ // add entry module to deferred list
594- /** ****/ deferredModules .push ([7 ,4 ]);
605+ /** ****/ deferredModules .push ([7 ,3 , 4 ]);
595606/** ****/ // run deferred modules when ready
596607/** ****/ return checkDeferredModules ();
597608/** ****/ })
@@ -622,87 +633,95 @@ module.exports = "pageC";
622633```
623634Hash: 0a1b2c3d4e5f6a7b8c9d
624635Version: webpack next
625- Asset Size Chunks Chunk Names
626- pageA.js 5.6 KiB 0 [emitted] pageA
627- pageB.js 5.4 KiB 1 [emitted] pageB
628- pageC.js 5.34 KiB 2 [emitted] pageC
629- vendor.js 536 bytes 3 [emitted] vendor
630- common.js 466 bytes 4 [emitted] common
631- Entrypoint pageA = vendor.js common.js pageA.js
632- Entrypoint pageB = vendor.js common.js pageB.js
633- Entrypoint pageC = common.js pageC.js
634- chunk {0} pageA.js (pageA) 170 bytes ={3}= ={4}= [entry] [rendered]
636+ Asset Size Chunks Chunk Names
637+ pageA.js 5.6 KiB 0 [emitted] pageA
638+ pageB.js 5.4 KiB 1 [emitted] pageB
639+ pageC.js 5.34 KiB 2 [emitted] pageC
640+ commons~pageA~pageB~pageC.js 269 bytes 3 [emitted] commons~pageA~pageB~pageC
641+ commons~pageB~pageC.js 269 bytes 4 [emitted] commons~pageB~pageC
642+ vendor.js 536 bytes 5 [emitted] vendor
643+ Entrypoint pageA = commons~pageA~pageB~pageC.js vendor.js pageA.js
644+ Entrypoint pageB = commons~pageA~pageB~pageC.js commons~pageB~pageC.js vendor.js pageB.js
645+ Entrypoint pageC = commons~pageA~pageB~pageC.js commons~pageB~pageC.js pageC.js
646+ chunk {0} pageA.js (pageA) 170 bytes ={3}= ={5}= [entry] [rendered]
635647 > ./pageA pageA
636648 [0] ./pageA.js 142 bytes {0} [built]
637649 single entry ./pageA pageA
638650 [2] ./utility1.js 28 bytes {0} [built]
639651 cjs require ./utility1 [0] ./pageA.js 2:15-36
640- chunk {1} pageB.js (pageB) 142 bytes ={3}= ={4}= [entry] [rendered]
652+ chunk {1} pageB.js (pageB) 142 bytes ={3}= ={4}= ={5}= [entry] [rendered]
641653 > ./pageB pageB
642654 [4] ./pageB.js 142 bytes {1} [built]
643655 single entry ./pageB pageB
644- chunk {2} pageC.js (pageC) 105 bytes ={4}= [entry] [rendered]
656+ chunk {2} pageC.js (pageC) 105 bytes ={3}= ={ 4}= [entry] [rendered]
645657 > ./pageC pageC
646658 [7] ./pageC.js 105 bytes {2} [built]
647659 single entry ./pageC pageC
648- chunk {3} vendor.js (vendor) 54 bytes ={4}= ={0}= ={1}= [initial] [rendered] split chunk (cache group: vendor) (name: vendor)
649- > ./pageA pageA
650- > ./pageB pageB
651- 2 modules
652- chunk {4} common.js (common) 56 bytes ={2}= ={3}= ={1}= ={0}= [initial] [rendered] split chunk (name: common)
660+ chunk {3} commons~pageA~pageB~pageC.js (commons~pageA~pageB~pageC) 28 bytes ={4}= ={2}= ={5}= ={1}= ={0}= [initial] [rendered] split chunk (cache group: commons) (name: commons~pageA~pageB~pageC)
653661 > ./pageC pageC
654662 > ./pageB pageB
655663 > ./pageA pageA
656- [3] ./utility2.js 28 bytes {4 } [built]
664+ [3] ./utility2.js 28 bytes {3 } [built]
657665 cjs require ./utility2 [0] ./pageA.js 3:15-36
658666 cjs require ./utility2 [4] ./pageB.js 2:15-36
659667 cjs require ./utility2 [7] ./pageC.js 1:15-36
668+ chunk {4} commons~pageB~pageC.js (commons~pageB~pageC) 28 bytes ={3}= ={2}= ={5}= ={1}= [initial] [rendered] split chunk (cache group: commons) (name: commons~pageB~pageC)
669+ > ./pageC pageC
670+ > ./pageB pageB
660671 [6] ./utility3.js 28 bytes {4} [built]
661672 cjs require ./utility3 [4] ./pageB.js 3:15-36
662673 cjs require ./utility3 [7] ./pageC.js 2:15-36
674+ chunk {5} vendor.js (vendor) 54 bytes ={3}= ={0}= ={4}= ={1}= [initial] [rendered] split chunk (cache group: vendor) (name: vendor)
675+ > ./pageA pageA
676+ > ./pageB pageB
677+ 2 modules
663678```
664679
665680## Production mode
666681
667682```
668683Hash: 0a1b2c3d4e5f6a7b8c9d
669684Version: webpack next
670- Asset Size Chunks Chunk Names
671- common.js 132 bytes 0 [emitted] common
672- vendor.js 134 bytes 1 [emitted] vendor
673- pageC.js 1.1 KiB 2 [emitted] pageC
674- pageB.js 1.11 KiB 3 [emitted] pageB
675- pageA.js 1.15 KiB 4 [emitted] pageA
676- Entrypoint pageA = vendor.js common.js pageA.js
677- Entrypoint pageB = vendor.js common.js pageB.js
678- Entrypoint pageC = common.js pageC.js
679- chunk {0} common.js (common) 56 bytes ={2}= ={1}= ={3}= ={4}= [initial] [rendered] split chunk (name: common)
685+ Asset Size Chunks Chunk Names
686+ vendor.js 134 bytes 0 [emitted] vendor
687+ commons~pageB~pageC.js 97 bytes 1 [emitted] commons~pageB~pageC
688+ commons~pageA~pageB~pageC.js 96 bytes 2 [emitted] commons~pageA~pageB~pageC
689+ pageC.js 1.1 KiB 3 [emitted] pageC
690+ pageB.js 1.11 KiB 4 [emitted] pageB
691+ pageA.js 1.15 KiB 5 [emitted] pageA
692+ Entrypoint pageA = commons~pageA~pageB~pageC.js vendor.js pageA.js
693+ Entrypoint pageB = commons~pageA~pageB~pageC.js commons~pageB~pageC.js vendor.js pageB.js
694+ Entrypoint pageC = commons~pageA~pageB~pageC.js commons~pageB~pageC.js pageC.js
695+ chunk {0} vendor.js (vendor) 54 bytes ={2}= ={5}= ={1}= ={4}= [initial] [rendered] split chunk (cache group: vendor) (name: vendor)
696+ > ./pageA pageA
697+ > ./pageB pageB
698+ 2 modules
699+ chunk {1} commons~pageB~pageC.js (commons~pageB~pageC) 28 bytes ={2}= ={3}= ={0}= ={4}= [initial] [rendered] split chunk (cache group: commons) (name: commons~pageB~pageC)
700+ > ./pageC pageC
701+ > ./pageB pageB
702+ [1] ./utility3.js 28 bytes {1} [built]
703+ cjs require ./utility3 [2] ./pageC.js 2:15-36
704+ cjs require ./utility3 [4] ./pageB.js 3:15-36
705+ chunk {2} commons~pageA~pageB~pageC.js (commons~pageA~pageB~pageC) 28 bytes ={1}= ={3}= ={0}= ={4}= ={5}= [initial] [rendered] split chunk (cache group: commons) (name: commons~pageA~pageB~pageC)
680706 > ./pageC pageC
681707 > ./pageB pageB
682708 > ./pageA pageA
683- [0] ./utility2.js 28 bytes {0 } [built]
709+ [0] ./utility2.js 28 bytes {2 } [built]
684710 cjs require ./utility2 [2] ./pageC.js 1:15-36
685711 cjs require ./utility2 [4] ./pageB.js 2:15-36
686712 cjs require ./utility2 [7] ./pageA.js 3:15-36
687- [1] ./utility3.js 28 bytes {0} [built]
688- cjs require ./utility3 [2] ./pageC.js 2:15-36
689- cjs require ./utility3 [4] ./pageB.js 3:15-36
690- chunk {1} vendor.js (vendor) 54 bytes ={0}= ={4}= ={3}= [initial] [rendered] split chunk (cache group: vendor) (name: vendor)
691- > ./pageA pageA
692- > ./pageB pageB
693- 2 modules
694- chunk {2} pageC.js (pageC) 105 bytes ={0}= [entry] [rendered]
713+ chunk {3} pageC.js (pageC) 105 bytes ={2}= ={1}= [entry] [rendered]
695714 > ./pageC pageC
696- [2] ./pageC.js 105 bytes {2 } [built]
715+ [2] ./pageC.js 105 bytes {3 } [built]
697716 single entry ./pageC pageC
698- chunk {3 } pageB.js (pageB) 142 bytes ={1}= ={0}= [entry] [rendered]
717+ chunk {4 } pageB.js (pageB) 142 bytes ={2}= ={1}= ={0}= [entry] [rendered]
699718 > ./pageB pageB
700- [4] ./pageB.js 142 bytes {3 } [built]
719+ [4] ./pageB.js 142 bytes {4 } [built]
701720 single entry ./pageB pageB
702- chunk {4 } pageA.js (pageA) 170 bytes ={1 }= ={0}= [entry] [rendered]
721+ chunk {5 } pageA.js (pageA) 170 bytes ={2 }= ={0}= [entry] [rendered]
703722 > ./pageA pageA
704- [5] ./utility1.js 28 bytes {4 } [built]
723+ [5] ./utility1.js 28 bytes {5 } [built]
705724 cjs require ./utility1 [7] ./pageA.js 2:15-36
706- [7] ./pageA.js 142 bytes {4 } [built]
725+ [7] ./pageA.js 142 bytes {5 } [built]
707726 single entry ./pageA pageA
708727```
0 commit comments