@@ -5,38 +5,49 @@ const optimizationConfig = ({ env, isDev = true, isMiddleWareDevelop }) => {
55 if ( env === "client" ) {
66 if ( ! isDev ) {
77 return {
8- runtimeChunk : "single" ,
98 minimizer : [ "..." , new CssMinimizerPlugin ( ) ] ,
9+ moduleIds : "deterministic" ,
1010 splitChunks : {
11+ minChunks : 2 ,
12+ minSize : 30000 ,
13+
1114 cacheGroups : {
12- commons : {
15+ vendor : {
1316 test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
14- name : "vendor" ,
17+ enforce : true ,
1518 chunks : "all" ,
19+ name ( module ) {
20+ const packageName = module . context . match ( / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] ( .* ?) ( [ \\ / ] | $ ) / ) [ 1 ] ;
21+
22+ switch ( packageName ) {
23+ case "react" :
24+ case "react-dom" :
25+ case "react-router" :
26+ case "react-router-dom" :
27+ case "scheduler" :
28+ case "object-assign" :
29+ return "vendor-react" ;
30+ case "@chakra-ui" :
31+ return "vendor-ui" ;
32+ case "core-js" :
33+ case "core-js-pure" :
34+ return "vendor-core-js" ;
35+ case "lodash" :
36+ case "lodash-es" :
37+ return "vendor-lodash" ;
38+ default :
39+ return "vendor" ;
40+ }
41+ } ,
1642 } ,
1743 } ,
1844 } ,
19- } ;
20- }
21- if ( isMiddleWareDevelop ) {
22- return {
23- runtimeChunk : "single" ,
24- splitChunks : {
25- minChunks : 3 ,
26- cacheGroups : {
27- commons : {
28- test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
29- name : "vendor" ,
30- chunks : "all" ,
31- } ,
32- } ,
45+ runtimeChunk : {
46+ name : "runtime" ,
3347 } ,
3448 } ;
3549 }
36- // 开发模式下 为了使动态路由及时生效不出错, 不能使用这个配置
3750 return {
38- usedExports : true ,
39- runtimeChunk : "single" ,
4051 splitChunks : {
4152 minChunks : 2 ,
4253 minSize : 30000 ,
@@ -52,11 +63,19 @@ const optimizationConfig = ({ env, isDev = true, isMiddleWareDevelop }) => {
5263 switch ( packageName ) {
5364 case "react" :
5465 case "react-dom" :
66+ case "react-router" :
67+ case "react-router-dom" :
5568 case "scheduler" :
5669 case "object-assign" :
57- return "react" ;
58- case "chakra" :
59- return "ui" ;
70+ return "vendor-react" ;
71+ case "@chakra-ui" :
72+ return "vendor-ui" ;
73+ case "core-js" :
74+ case "core-js-pure" :
75+ return "vendor-core-js" ;
76+ case "lodash" :
77+ case "lodash-es" :
78+ return "vendor-lodash" ;
6079 default :
6180 return "vendor" ;
6281 }
@@ -68,10 +87,6 @@ const optimizationConfig = ({ env, isDev = true, isMiddleWareDevelop }) => {
6887 name : "runtime" ,
6988 } ,
7089 } ;
71- } else {
72- return {
73- usedExports : true ,
74- } ;
7590 }
7691} ;
7792
0 commit comments