Skip to content

Commit 97160b5

Browse files
committed
feat: remove loadable & support React-18 stream render
1 parent 9dbb7c9 commit 97160b5

File tree

1 file changed

+42
-27
lines changed

1 file changed

+42
-27
lines changed

webpack/optimization.js

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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: /[\\/]node_modules[\\/]/,
14-
name: "vendor",
17+
enforce: true,
1518
chunks: "all",
19+
name(module) {
20+
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[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: /[\\/]node_modules[\\/]/,
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

Comments
 (0)