@@ -45,12 +45,15 @@ module.exports = {
45
45
},
46
46
optimization: {
47
47
splitChunks: {
48
- chunks: " initial" ,
49
- minSize: 0 , // This is example is too small to create commons chunks
50
- name: " common" ,
51
48
cacheGroups: {
49
+ commons: {
50
+ chunks: " initial" ,
51
+ minChunks: 2 ,
52
+ minSize: 0 // This is example is too small to create commons chunks
53
+ },
52
54
vendor: {
53
55
test: / node_modules/ ,
56
+ chunks: " initial" ,
54
57
name: " vendor" ,
55
58
enforce: true
56
59
}
@@ -67,7 +70,7 @@ module.exports = {
67
70
# dist/vendor.js
68
71
69
72
``` javascript
70
- (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[3 ],{
73
+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[5 ],{
71
74
72
75
/** */ 1 :
73
76
/* !*********************************!*\
@@ -94,10 +97,10 @@ module.exports = "vendor2";
94
97
}]);
95
98
```
96
99
97
- # dist/common .js
100
+ # dist/commons ~ pageA ~ pageB ~ pageC .js
98
101
99
102
``` javascript
100
- (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[4 ],{
103
+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[3 ],{
101
104
102
105
/** */ 3 :
103
106
/* !*********************!*\
@@ -108,7 +111,15 @@ module.exports = "vendor2";
108
111
109
112
module .exports = " utility2" ;
110
113
111
- /** */ }),
114
+ /** */ })
115
+
116
+ }]);
117
+ ```
118
+
119
+ # dist/commons~ pageB~ pageC.js
120
+
121
+ ``` javascript
122
+ (window [" webpackJsonp" ] = window [" webpackJsonp" ] || []).push ([[4 ],{
112
123
113
124
/** */ 6 :
114
125
/* !*********************!*\
@@ -259,7 +270,7 @@ module.exports = "utility3";
259
270
/** ****/
260
271
/** ****/
261
272
/** ****/ // add entry module to deferred list
262
- /** ****/ deferredModules .push ([0 ,3 ,4 ]);
273
+ /** ****/ deferredModules .push ([0 ,3 ,5 ]);
263
274
/** ****/ // run deferred modules when ready
264
275
/** ****/ return checkDeferredModules ();
265
276
/** ****/ })
@@ -432,7 +443,7 @@ module.exports = "utility1";
432
443
/** ****/
433
444
/** ****/
434
445
/** ****/ // add entry module to deferred list
435
- /** ****/ deferredModules .push ([4 ,3 ,4 ]);
446
+ /** ****/ deferredModules .push ([4 ,3 ,4 , 5 ]);
436
447
/** ****/ // run deferred modules when ready
437
448
/** ****/ return checkDeferredModules ();
438
449
/** ****/ })
@@ -591,7 +602,7 @@ module.exports = "pageB";
591
602
/** ****/
592
603
/** ****/
593
604
/** ****/ // add entry module to deferred list
594
- /** ****/ deferredModules .push ([7 ,4 ]);
605
+ /** ****/ deferredModules .push ([7 ,3 , 4 ]);
595
606
/** ****/ // run deferred modules when ready
596
607
/** ****/ return checkDeferredModules ();
597
608
/** ****/ })
@@ -622,87 +633,95 @@ module.exports = "pageC";
622
633
```
623
634
Hash: 0a1b2c3d4e5f6a7b8c9d
624
635
Version: 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]
635
647
> ./pageA pageA
636
648
[0] ./pageA.js 142 bytes {0} [built]
637
649
single entry ./pageA pageA
638
650
[2] ./utility1.js 28 bytes {0} [built]
639
651
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]
641
653
> ./pageB pageB
642
654
[4] ./pageB.js 142 bytes {1} [built]
643
655
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]
645
657
> ./pageC pageC
646
658
[7] ./pageC.js 105 bytes {2} [built]
647
659
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)
653
661
> ./pageC pageC
654
662
> ./pageB pageB
655
663
> ./pageA pageA
656
- [3] ./utility2.js 28 bytes {4 } [built]
664
+ [3] ./utility2.js 28 bytes {3 } [built]
657
665
cjs require ./utility2 [0] ./pageA.js 3:15-36
658
666
cjs require ./utility2 [4] ./pageB.js 2:15-36
659
667
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
660
671
[6] ./utility3.js 28 bytes {4} [built]
661
672
cjs require ./utility3 [4] ./pageB.js 3:15-36
662
673
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
663
678
```
664
679
665
680
## Production mode
666
681
667
682
```
668
683
Hash: 0a1b2c3d4e5f6a7b8c9d
669
684
Version: 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)
680
706
> ./pageC pageC
681
707
> ./pageB pageB
682
708
> ./pageA pageA
683
- [0] ./utility2.js 28 bytes {0 } [built]
709
+ [0] ./utility2.js 28 bytes {2 } [built]
684
710
cjs require ./utility2 [2] ./pageC.js 1:15-36
685
711
cjs require ./utility2 [4] ./pageB.js 2:15-36
686
712
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]
695
714
> ./pageC pageC
696
- [2] ./pageC.js 105 bytes {2 } [built]
715
+ [2] ./pageC.js 105 bytes {3 } [built]
697
716
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]
699
718
> ./pageB pageB
700
- [4] ./pageB.js 142 bytes {3 } [built]
719
+ [4] ./pageB.js 142 bytes {4 } [built]
701
720
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]
703
722
> ./pageA pageA
704
- [5] ./utility1.js 28 bytes {4 } [built]
723
+ [5] ./utility1.js 28 bytes {5 } [built]
705
724
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]
707
726
single entry ./pageA pageA
708
727
```
0 commit comments