@modern-js/main-doc 3.0.0-alpha.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/en/apis/app/commands.mdx +6 -30
- package/docs/en/components/bff-upload.mdx +3 -5
- package/docs/en/components/bundler.mdx +1 -1
- package/docs/en/components/enable-bff.mdx +6 -2
- package/docs/en/components/enable-ssg.mdx +1 -0
- package/docs/en/components/esbuild.mdx +2 -2
- package/docs/en/components/extend-bff-function.mdx +2 -4
- package/docs/en/components/hono.mdx +119 -0
- package/docs/en/components/international/custom-instance-code.mdx +16 -0
- package/docs/en/components/international/init-options-desc.mdx +1 -0
- package/docs/en/components/international/install-command.mdx +15 -1
- package/docs/en/components/international/instance-code.mdx +26 -0
- package/docs/en/configure/app/builder-plugins.mdx +1 -2
- package/docs/en/configure/app/dev/server.mdx +108 -0
- package/docs/en/configure/app/experiments/source-build.mdx +0 -1
- package/docs/en/configure/app/output/assets-retry.mdx +1 -1
- package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
- package/docs/en/configure/app/output/filename.mdx +2 -4
- package/docs/en/configure/app/output/temp-dir.mdx +3 -3
- package/docs/en/configure/app/performance/build-cache.mdx +1 -1
- package/docs/en/configure/app/performance/profile.mdx +1 -1
- package/docs/en/configure/app/plugins.mdx +1 -3
- package/docs/en/configure/app/runtime/router.mdx +0 -4
- package/docs/en/configure/app/security/sri.mdx +0 -1
- package/docs/en/configure/app/source/alias.mdx +1 -1
- package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/en/configure/app/source/include.mdx +2 -14
- package/docs/en/configure/app/tools/dev-server.mdx +8 -8
- package/docs/en/configure/app/usage.mdx +0 -12
- package/docs/en/guides/_meta.json +5 -0
- package/docs/en/guides/advanced-features/bff/_meta.json +9 -1
- package/docs/en/guides/advanced-features/bff/cross-project.mdx +1 -1
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -15
- package/docs/en/guides/advanced-features/bff/function.mdx +4 -4
- package/docs/en/guides/advanced-features/bff/operators.mdx +628 -0
- package/docs/en/guides/advanced-features/bff/sdk.mdx +17 -9
- package/docs/en/guides/advanced-features/bff/upload.mdx +3 -1
- package/docs/en/guides/advanced-features/international/configuration.mdx +7 -16
- package/docs/en/guides/advanced-features/international/quick-start.mdx +4 -32
- package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +1 -1
- package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +18 -4
- package/docs/en/guides/advanced-features/rspack-start.mdx +1 -1
- package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +62 -5
- package/docs/en/guides/basic-features/data/data-cache.mdx +60 -76
- package/docs/en/guides/basic-features/data/data-fetch.mdx +15 -14
- package/docs/en/guides/basic-features/debug/proxy.mdx +6 -9
- package/docs/en/guides/basic-features/render/rsc.mdx +24 -19
- package/docs/en/guides/basic-features/render/ssg.mdx +4 -9
- package/docs/en/guides/basic-features/render/ssr-cache.mdx +0 -4
- package/docs/en/guides/basic-features/static-assets/svg-assets.mdx +0 -4
- package/docs/en/guides/get-started/tech-stack.mdx +1 -1
- package/docs/en/guides/upgrade/_meta.json +1 -0
- package/docs/en/guides/upgrade/config.mdx +936 -0
- package/docs/en/guides/upgrade/entry.mdx +463 -0
- package/docs/en/guides/upgrade/other.mdx +83 -0
- package/docs/en/guides/upgrade/overview.mdx +33 -0
- package/docs/en/guides/upgrade/tailwindcss.mdx +130 -0
- package/docs/en/guides/upgrade/web-server.mdx +91 -0
- package/docs/en/plugin/_meta.json +5 -0
- package/docs/en/plugin/cli-plugins/_meta.json +1 -1
- package/docs/en/plugin/cli-plugins/api.mdx +13 -63
- package/docs/en/plugin/cli-plugins/life-cycle.mdx +0 -4
- package/docs/en/plugin/introduction.mdx +8 -20
- package/docs/en/plugin/plugin-system.mdx +3 -3
- package/docs/en/plugin/runtime-plugins/_meta.json +1 -1
- package/docs/en/plugin/runtime-plugins/api.mdx +1 -1
- package/docs/en/plugin/server-plugins/_meta.json +1 -0
- package/docs/en/plugin/server-plugins/api.mdx +210 -1
- package/docs/en/plugin/server-plugins/life-cycle.mdx +41 -1
- package/docs/zh/apis/app/commands.mdx +6 -30
- package/docs/zh/components/bff-operator-code.mdx +5 -0
- package/docs/zh/components/bff-upload.mdx +0 -2
- package/docs/zh/components/bundler.mdx +1 -1
- package/docs/zh/components/enable-bff.mdx +6 -2
- package/docs/zh/components/enable-ssg.mdx +3 -1
- package/docs/zh/components/esbuild.mdx +2 -2
- package/docs/zh/components/extend-bff-function.mdx +2 -4
- package/docs/zh/components/hono.mdx +119 -0
- package/docs/zh/components/international/custom-instance-code.mdx +16 -0
- package/docs/zh/components/international/init-options-desc.mdx +1 -0
- package/docs/zh/components/international/install-command.mdx +15 -0
- package/docs/zh/components/international/instance-code.mdx +26 -0
- package/docs/zh/configure/app/builder-plugins.mdx +1 -2
- package/docs/zh/configure/app/dev/server.mdx +109 -2
- package/docs/zh/configure/app/experiments/source-build.mdx +0 -1
- package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
- package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
- package/docs/zh/configure/app/output/filename.mdx +2 -4
- package/docs/zh/configure/app/output/temp-dir.mdx +3 -3
- package/docs/zh/configure/app/performance/build-cache.mdx +1 -1
- package/docs/zh/configure/app/performance/profile.mdx +1 -1
- package/docs/zh/configure/app/plugins.mdx +1 -2
- package/docs/zh/configure/app/runtime/router.mdx +0 -4
- package/docs/zh/configure/app/security/sri.mdx +0 -1
- package/docs/zh/configure/app/source/alias.mdx +1 -1
- package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/zh/configure/app/source/include.mdx +2 -16
- package/docs/zh/configure/app/tools/dev-server.mdx +5 -5
- package/docs/zh/configure/app/usage.mdx +0 -12
- package/docs/zh/guides/advanced-features/bff/_meta.json +9 -1
- package/docs/zh/guides/advanced-features/bff/frameworks.mdx +2 -16
- package/docs/zh/guides/advanced-features/bff/operators.mdx +628 -0
- package/docs/zh/guides/advanced-features/bff/sdk.mdx +19 -12
- package/docs/zh/guides/advanced-features/bff/upload.mdx +3 -1
- package/docs/zh/guides/advanced-features/international/configuration.mdx +7 -16
- package/docs/zh/guides/advanced-features/international/quick-start.mdx +2 -25
- package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +1 -1
- package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +18 -4
- package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +60 -5
- package/docs/zh/guides/basic-features/data/data-cache.mdx +47 -54
- package/docs/zh/guides/basic-features/data/data-fetch.mdx +9 -12
- package/docs/zh/guides/basic-features/debug/proxy.mdx +4 -7
- package/docs/zh/guides/basic-features/render/rsc.mdx +23 -37
- package/docs/zh/guides/basic-features/render/ssr-cache.mdx +0 -4
- package/docs/zh/guides/basic-features/static-assets/svg-assets.mdx +0 -4
- package/docs/zh/guides/get-started/tech-stack.mdx +1 -1
- package/docs/zh/guides/troubleshooting/builder.mdx +1 -1
- package/docs/zh/guides/upgrade/config.mdx +132 -1
- package/docs/zh/plugin/_meta.json +5 -0
- package/docs/zh/plugin/cli-plugins/_meta.json +1 -1
- package/docs/zh/plugin/cli-plugins/api.mdx +15 -65
- package/docs/zh/plugin/cli-plugins/life-cycle.mdx +0 -4
- package/docs/zh/plugin/introduction.mdx +4 -16
- package/docs/zh/plugin/plugin-system.mdx +3 -14
- package/docs/zh/plugin/runtime-plugins/_meta.json +1 -1
- package/docs/zh/plugin/runtime-plugins/api.mdx +1 -1
- package/docs/zh/plugin/server-plugins/_meta.json +1 -0
- package/docs/zh/plugin/server-plugins/api.mdx +210 -1
- package/docs/zh/plugin/server-plugins/life-cycle.mdx +41 -1
- package/package.json +2 -2
- package/src/components/FrameworkCode/index.tsx +605 -0
- package/docs/en/configure/app/performance/bundle-analyze.mdx +0 -24
- package/docs/en/configure/app/tools/babel.mdx +0 -225
- package/docs/en/plugin/cli-plugins/migration.mdx +0 -83
- package/docs/en/plugin/runtime-plugins/migration.mdx +0 -110
- package/docs/zh/components/default-mwa-generate.mdx +0 -4
- package/docs/zh/configure/app/performance/bundle-analyze.mdx +0 -24
- package/docs/zh/configure/app/tools/babel.mdx +0 -224
- package/docs/zh/plugin/cli-plugins/migration.mdx +0 -83
- package/docs/zh/plugin/runtime-plugins/migration.mdx +0 -110
- /package/docs/en/components/{router-legacy-tip.mdx → upgrade-config-deploy.mdx} +0 -0
- /package/docs/zh/components/{router-legacy-tip.mdx → upgrade-config-deploy.mdx} +0 -0
|
@@ -0,0 +1,936 @@
|
|
|
1
|
+
# Configuration Changes
|
|
2
|
+
|
|
3
|
+
This document mainly introduces incompatible configuration changes and recommended migration methods when upgrading from Modern.js 2.0 to 3.0.
|
|
4
|
+
|
|
5
|
+
## dev
|
|
6
|
+
|
|
7
|
+
### dev.port
|
|
8
|
+
|
|
9
|
+
**Change**: This configuration has been removed and replaced with `server.port`.
|
|
10
|
+
|
|
11
|
+
**Migration Example**:
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Before
|
|
15
|
+
dev: {
|
|
16
|
+
port: 8080;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// After
|
|
20
|
+
server: {
|
|
21
|
+
port: process.env.NODE_ENV === 'development' ? 8080 : undefined;
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## html
|
|
26
|
+
|
|
27
|
+
### html.appIcon
|
|
28
|
+
|
|
29
|
+
**Change**: String format is no longer supported, object format must be used.
|
|
30
|
+
|
|
31
|
+
**V2 Type**:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
type AppIconItem = {
|
|
35
|
+
src: string;
|
|
36
|
+
size: number;
|
|
37
|
+
target?: 'apple-touch-icon' | 'web-app-manifest';
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
type AppIcon =
|
|
41
|
+
| string
|
|
42
|
+
| {
|
|
43
|
+
name?: string;
|
|
44
|
+
icons: AppIconItem[];
|
|
45
|
+
filename?: string;
|
|
46
|
+
};
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**V3 Type**:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
type AppIconItem = {
|
|
53
|
+
src: string;
|
|
54
|
+
size: number;
|
|
55
|
+
target?: 'apple-touch-icon' | 'web-app-manifest';
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type AppIcon = {
|
|
59
|
+
name?: string;
|
|
60
|
+
icons: AppIconItem[];
|
|
61
|
+
filename?: string;
|
|
62
|
+
};
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Migration Example**:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
// v2
|
|
69
|
+
export default {
|
|
70
|
+
html: {
|
|
71
|
+
appIcon: './src/assets/icon.png',
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// v3
|
|
76
|
+
export default {
|
|
77
|
+
html: {
|
|
78
|
+
appIcon: {
|
|
79
|
+
icons: [
|
|
80
|
+
{
|
|
81
|
+
src: './src/assets/icon.png',
|
|
82
|
+
size: 180,
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### html.xxxByEntries
|
|
91
|
+
|
|
92
|
+
**Change**: Configurations such as `metaByEntries`, `templateParametersByEntries`, `injectByEntries`, `tagsByEnties`, `faviconByEntries`, `templateByEnties`, `titleByEntries` have been deprecated and need to be replaced with function syntax.
|
|
93
|
+
|
|
94
|
+
**Migration Steps**:
|
|
95
|
+
|
|
96
|
+
1. Remove related configurations
|
|
97
|
+
2. Use the function syntax of `html.xxx` instead
|
|
98
|
+
|
|
99
|
+
**Migration Example**:
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
// v2
|
|
103
|
+
export default {
|
|
104
|
+
html: {
|
|
105
|
+
metaByEntries: {
|
|
106
|
+
foo: {
|
|
107
|
+
description: 'TikTok',
|
|
108
|
+
},
|
|
109
|
+
// Other configurations...
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
// v3
|
|
115
|
+
export default {
|
|
116
|
+
html: {
|
|
117
|
+
meta({ entryName }) {
|
|
118
|
+
switch (entryName) {
|
|
119
|
+
case 'foo':
|
|
120
|
+
return {
|
|
121
|
+
description: 'TikTok',
|
|
122
|
+
};
|
|
123
|
+
// Other configurations...
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### html.disableHtmlFolder
|
|
131
|
+
|
|
132
|
+
**Change**: This configuration has been deprecated, use `html.outputStructure` instead.
|
|
133
|
+
|
|
134
|
+
**Migration Example**:
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// v2 - equivalent to html.outputStructure configured as nested
|
|
138
|
+
export default {
|
|
139
|
+
html: {
|
|
140
|
+
disableHtmlFolder: true,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// v3
|
|
145
|
+
export default {
|
|
146
|
+
html: {
|
|
147
|
+
outputStructure: 'flat',
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## tools
|
|
153
|
+
|
|
154
|
+
### tools.esbuild
|
|
155
|
+
|
|
156
|
+
**Change**: This configuration has been deprecated, you need to manually switch to esbuild minification.
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
// This configuration has been deprecated, please refer to [Switching Minifier](https://rsbuild.rs/config/output/minify#switching-minifier) to manually switch to esbuild minification
|
|
160
|
+
// tools: {
|
|
161
|
+
// esbuild: { /* configuration */ }
|
|
162
|
+
// },
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### tools.terser
|
|
166
|
+
|
|
167
|
+
**Change**: This configuration has been deprecated, you need to manually switch to Terser minification.
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// This configuration has been deprecated, please refer to [Switching Minifier](https://rsbuild.rs/config/output/minify#switching-minifier) to manually switch to Terser minification
|
|
171
|
+
// tools: {
|
|
172
|
+
// terser: { /* configuration */ }
|
|
173
|
+
// },
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### tools.devServer
|
|
177
|
+
|
|
178
|
+
**Change 1**: `after`, `before`, `devMiddleware` configurations have been deprecated, use `dev` configuration instead.
|
|
179
|
+
|
|
180
|
+
**Migration Example**:
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
// v2
|
|
184
|
+
export default {
|
|
185
|
+
tools: {
|
|
186
|
+
devServer: {
|
|
187
|
+
before: [...],
|
|
188
|
+
after: [...],
|
|
189
|
+
devMiddleware: {
|
|
190
|
+
writeToDisk: true
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// v3
|
|
197
|
+
export default {
|
|
198
|
+
dev: {
|
|
199
|
+
setupMiddlewares: [...],
|
|
200
|
+
writeToDisk: true
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Change 2**: `client`, `https`, `liveReload` configurations have been deprecated, use corresponding `dev.client`, `dev.https`, `dev.liveReload` configurations instead.
|
|
206
|
+
|
|
207
|
+
**Migration Example**:
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
// v2
|
|
211
|
+
export default {
|
|
212
|
+
tools: {
|
|
213
|
+
devServer: {
|
|
214
|
+
client: {
|
|
215
|
+
port: 8081,
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
// v3
|
|
222
|
+
export default {
|
|
223
|
+
dev: {
|
|
224
|
+
client: {
|
|
225
|
+
port: 8081,
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**Change 3**: `hot` configuration has been deprecated, use `dev.hmr` configuration instead.
|
|
232
|
+
|
|
233
|
+
**Migration Example**:
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
// v2
|
|
237
|
+
export default {
|
|
238
|
+
tools: {
|
|
239
|
+
devServer: {
|
|
240
|
+
hot: false,
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
// v3
|
|
246
|
+
export default {
|
|
247
|
+
dev: {
|
|
248
|
+
hmr: false,
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Change 4**: `compress`, `headers`, `historyApiFallback`, `watch` configurations have been deprecated, use `dev.server.compress`, `dev.server.headers`, `dev.server.historyApiFallback`, `dev.server.watch` configurations instead.
|
|
254
|
+
|
|
255
|
+
**Migration Example**:
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
// v2
|
|
259
|
+
export default {
|
|
260
|
+
tools: {
|
|
261
|
+
devServer: {
|
|
262
|
+
compress: true,
|
|
263
|
+
headers: {
|
|
264
|
+
'X-Custom-Header': 'custom-value',
|
|
265
|
+
},
|
|
266
|
+
historyApiFallback: true,
|
|
267
|
+
watch: true,
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
// v3
|
|
273
|
+
export default {
|
|
274
|
+
dev: {
|
|
275
|
+
server: {
|
|
276
|
+
compress: true,
|
|
277
|
+
headers: {
|
|
278
|
+
'X-Custom-Header': 'custom-value',
|
|
279
|
+
},
|
|
280
|
+
historyApiFallback: true,
|
|
281
|
+
watch: true,
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### tools.pug
|
|
288
|
+
|
|
289
|
+
**Change**: This configuration has been deprecated, use Rsbuild's [Pug plugin](https://github.com/rspack-contrib/rsbuild-plugin-pug) to enable support.
|
|
290
|
+
|
|
291
|
+
**Migration Example**:
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
// v2
|
|
295
|
+
tools: {
|
|
296
|
+
pug: true,
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
// v3
|
|
300
|
+
import { pluginPug } from "@rsbuild/plugin-pug";
|
|
301
|
+
|
|
302
|
+
export default {
|
|
303
|
+
builderPlugins: [pluginPug()],
|
|
304
|
+
};
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### tools.rsdoctor
|
|
308
|
+
|
|
309
|
+
**Change**: This configuration has been deprecated, please refer to the [Rsdoctor documentation](/guides/basic-features/debug/rsdoctor) and use Rspack's [Rsdoctor plugin] to enable support.
|
|
310
|
+
|
|
311
|
+
**Migration Example**:
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
// v2
|
|
315
|
+
tools: {
|
|
316
|
+
rsdoctor: {
|
|
317
|
+
disableClientServer: true,
|
|
318
|
+
features: ['bundle', 'loader', 'plugins', 'resolver'],
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
|
|
322
|
+
// v3
|
|
323
|
+
import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin';
|
|
324
|
+
|
|
325
|
+
export default {
|
|
326
|
+
// ...
|
|
327
|
+
tools: {
|
|
328
|
+
bundlerChain(chain) {
|
|
329
|
+
// Only register the plugin when RSDOCTOR is true, as the plugin will increase build time
|
|
330
|
+
if (process.env.RSDOCTOR) {
|
|
331
|
+
chain.plugin('rsdoctor').use(RsdoctorRspackPlugin, [
|
|
332
|
+
{
|
|
333
|
+
// Plugin options
|
|
334
|
+
disableClientServer: true,
|
|
335
|
+
features: ['bundle', 'loader', 'plugins', 'resolver'],
|
|
336
|
+
},
|
|
337
|
+
]);
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
};
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### tools.babel
|
|
345
|
+
|
|
346
|
+
**Change**: This configuration has been deprecated, the framework no longer includes Babel by default. Please use [Rsbuild's Babel plugin](https://v0.rsbuild.rs/plugins/list/plugin-babel) to enable support.
|
|
347
|
+
|
|
348
|
+
**Migration Example**:
|
|
349
|
+
|
|
350
|
+
```typescript
|
|
351
|
+
// v2
|
|
352
|
+
tools: {
|
|
353
|
+
babel: {
|
|
354
|
+
plugins: [
|
|
355
|
+
[
|
|
356
|
+
'babel-plugin-import',
|
|
357
|
+
{
|
|
358
|
+
libraryName: 'xxx-components',
|
|
359
|
+
libraryDirectory: 'es',
|
|
360
|
+
style: true,
|
|
361
|
+
},
|
|
362
|
+
],
|
|
363
|
+
],
|
|
364
|
+
},
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// v3
|
|
368
|
+
import { pluginBabel } from '@rsbuild/plugin-babel';
|
|
369
|
+
|
|
370
|
+
export default {
|
|
371
|
+
// ...
|
|
372
|
+
builderPlugins: [
|
|
373
|
+
pluginBabel({
|
|
374
|
+
babelLoaderOptions: {
|
|
375
|
+
plugins: [
|
|
376
|
+
[
|
|
377
|
+
'babel-plugin-import',
|
|
378
|
+
{
|
|
379
|
+
libraryName: 'my-components',
|
|
380
|
+
libraryDirectory: 'es',
|
|
381
|
+
style: true,
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
],
|
|
385
|
+
},
|
|
386
|
+
})
|
|
387
|
+
];
|
|
388
|
+
}
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### tools.tailwindcss
|
|
392
|
+
|
|
393
|
+
**Change**: This configuration has been deprecated, please refer to [Tailwind Plugin Changes](/guides/upgrade/tailwindcss) and use Rsbuild's approach to integrate Tailwind CSS.
|
|
394
|
+
|
|
395
|
+
### tools.tsLoader
|
|
396
|
+
|
|
397
|
+
**Change**: Since Rspack does not support `tsLoader`, this configuration has been deprecated. The [Rspack experiments.typeReexportsPresence configuration](https://rspack.rs/config/experiments#experimentstypereexportspresence) can be used to improve recognition of TypeScript type exports, which can assist with ts-loader migration.
|
|
398
|
+
|
|
399
|
+
```typescript
|
|
400
|
+
// This configuration has been deprecated
|
|
401
|
+
// tools: {
|
|
402
|
+
// tsLoader: { /* configuration */ }
|
|
403
|
+
// },
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### tools.webpackChain
|
|
407
|
+
|
|
408
|
+
**Change**: This configuration has been deprecated, please migrate to `tools.bundlerChain`.
|
|
409
|
+
|
|
410
|
+
```typescript
|
|
411
|
+
// v2
|
|
412
|
+
tools: {
|
|
413
|
+
webpackChain: (chain, { env }) => {
|
|
414
|
+
if (env === 'development') {
|
|
415
|
+
chain.devtool('cheap-module-eval-source-map');
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// v3
|
|
421
|
+
tools: {
|
|
422
|
+
bundlerChain: (chain, { env }) => {
|
|
423
|
+
if (env === 'development') {
|
|
424
|
+
chain.devtool('cheap-module-eval-source-map');
|
|
425
|
+
}
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### tools.webpack
|
|
431
|
+
|
|
432
|
+
**Change**: This configuration has been deprecated, please migrate webpack configuration to `tools.rspack`.
|
|
433
|
+
|
|
434
|
+
```typescript
|
|
435
|
+
// v2
|
|
436
|
+
tools: {
|
|
437
|
+
webpack: (chain, { env }) => {
|
|
438
|
+
{
|
|
439
|
+
/* configuration */
|
|
440
|
+
}
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// v3
|
|
445
|
+
tools: {
|
|
446
|
+
rspack: (chain, { env }) => {
|
|
447
|
+
{
|
|
448
|
+
/* configuration */
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## source
|
|
455
|
+
|
|
456
|
+
### source.resolveMainFields
|
|
457
|
+
|
|
458
|
+
**Change**: This configuration has been deprecated, use `resolve.mainFields` instead.
|
|
459
|
+
|
|
460
|
+
**Migration Example**:
|
|
461
|
+
|
|
462
|
+
```typescript
|
|
463
|
+
// v2
|
|
464
|
+
source: {
|
|
465
|
+
resolveMainFields: ['custom', 'module', 'main'];
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// v3
|
|
469
|
+
resolve: {
|
|
470
|
+
mainFields: ['custom', 'module', 'main'];
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### source.resolveExtensionPrefix
|
|
475
|
+
|
|
476
|
+
**Change**: This configuration has been deprecated, use `resolve.extensions` instead.
|
|
477
|
+
|
|
478
|
+
**Migration Example**:
|
|
479
|
+
|
|
480
|
+
```typescript
|
|
481
|
+
// v2
|
|
482
|
+
source: {
|
|
483
|
+
resolveExtensionPrefix: ['.ts', '.tsx', '.js'];
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
// v3
|
|
487
|
+
resolve: {
|
|
488
|
+
extensions: ['.ts', '.tsx', '.js'];
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### source.moduleScopes
|
|
493
|
+
|
|
494
|
+
**Change**: This configuration has been deprecated, remove it directly.
|
|
495
|
+
|
|
496
|
+
### source.enableCustomEntry
|
|
497
|
+
|
|
498
|
+
**Change**: This configuration has been deprecated, remove it directly.
|
|
499
|
+
|
|
500
|
+
### source.disableEntryDirs
|
|
501
|
+
|
|
502
|
+
**Change**: This configuration has been deprecated, remove it directly.
|
|
503
|
+
|
|
504
|
+
### source.alias
|
|
505
|
+
|
|
506
|
+
**Change**: This configuration no longer applies to code in custom Server and BFF. Aliases configured for server-side code need to be migrated to tsconfig.json.
|
|
507
|
+
|
|
508
|
+
**Migration Example**:
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
// v2
|
|
512
|
+
source: {
|
|
513
|
+
alias: {
|
|
514
|
+
'@api/*': './api/*',
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
|
|
518
|
+
// v3 tsconfig.json
|
|
519
|
+
{
|
|
520
|
+
"compilerOptions": {
|
|
521
|
+
"paths": {
|
|
522
|
+
"@api/*": ["./api/*"]
|
|
523
|
+
},
|
|
524
|
+
},
|
|
525
|
+
}
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
### server.routes
|
|
529
|
+
|
|
530
|
+
**Change**: The default route has changed from `main` to `index`. If `index` exists in the `server.routes` configuration, migrate as follows.
|
|
531
|
+
|
|
532
|
+
**Migration Example**:
|
|
533
|
+
|
|
534
|
+
```typescript
|
|
535
|
+
// v2
|
|
536
|
+
server: {
|
|
537
|
+
routes: {
|
|
538
|
+
main: '/new',
|
|
539
|
+
},
|
|
540
|
+
},
|
|
541
|
+
|
|
542
|
+
// v3
|
|
543
|
+
server: {
|
|
544
|
+
routes: {
|
|
545
|
+
index: '/new',
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
## output
|
|
551
|
+
|
|
552
|
+
### output.overrideBrowserslist
|
|
553
|
+
|
|
554
|
+
**Change**: Needs to be handled based on the project's existing configuration.
|
|
555
|
+
|
|
556
|
+
**Migration Steps**:
|
|
557
|
+
|
|
558
|
+
1. Check if there is a `.browserslistrc` file in the project
|
|
559
|
+
2. Check if `output.overrideBrowserslist` is configured in `modern.config.[ts|js]`
|
|
560
|
+
3. Check if browserslist is configured in package.json
|
|
561
|
+
|
|
562
|
+
If none of the above exist, create a `.browserslistrc` file with the following content for browsers supporting ES6:
|
|
563
|
+
|
|
564
|
+
```typescript
|
|
565
|
+
chrome >= 51;
|
|
566
|
+
edge >= 15;
|
|
567
|
+
firefox >= 54;
|
|
568
|
+
safari >= 10;
|
|
569
|
+
ios_saf >= 10;
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### output.enableAssetFallback
|
|
573
|
+
|
|
574
|
+
**Change**: This configuration has been deprecated, comment it out and add a note.
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
// This configuration has been deprecated, if you encounter issues please contact oncall for resolution
|
|
578
|
+
// output: {
|
|
579
|
+
// enableAssetFallback: true,
|
|
580
|
+
// },
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### output.cssModuleLocalIdentName
|
|
584
|
+
|
|
585
|
+
**Change**: This configuration has been deprecated, use `output.cssModules.localIdentName` instead.
|
|
586
|
+
|
|
587
|
+
**Migration Example**:
|
|
588
|
+
|
|
589
|
+
```typescript
|
|
590
|
+
// v2
|
|
591
|
+
export default {
|
|
592
|
+
output: {
|
|
593
|
+
cssModuleLocalIdentName: '[path][name]__[local]-[hash:base64:6]',
|
|
594
|
+
},
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
// v3
|
|
598
|
+
export default {
|
|
599
|
+
output: {
|
|
600
|
+
cssModules: {
|
|
601
|
+
localIdentName: '[path][name]__[local]-[hash:base64:6]',
|
|
602
|
+
},
|
|
603
|
+
},
|
|
604
|
+
};
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### output.disableCssExtract
|
|
608
|
+
|
|
609
|
+
**Change**: This configuration has been deprecated, use `output.injectStyles` instead.
|
|
610
|
+
|
|
611
|
+
**Migration Example**:
|
|
612
|
+
|
|
613
|
+
```typescript
|
|
614
|
+
// v2
|
|
615
|
+
export default {
|
|
616
|
+
output: {
|
|
617
|
+
disableCssExtract: true,
|
|
618
|
+
},
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
// v3
|
|
622
|
+
export default {
|
|
623
|
+
output: {
|
|
624
|
+
injectStyles: true,
|
|
625
|
+
},
|
|
626
|
+
};
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
### output.disableFilenameHash
|
|
630
|
+
|
|
631
|
+
**Change**: This configuration has been deprecated, use `output.filenameHash` instead.
|
|
632
|
+
|
|
633
|
+
**Migration Example**:
|
|
634
|
+
|
|
635
|
+
```typescript
|
|
636
|
+
// v2
|
|
637
|
+
export default {
|
|
638
|
+
output: {
|
|
639
|
+
disableFilenameHash: true,
|
|
640
|
+
},
|
|
641
|
+
};
|
|
642
|
+
|
|
643
|
+
// v3
|
|
644
|
+
export default {
|
|
645
|
+
output: {
|
|
646
|
+
filenameHash: false,
|
|
647
|
+
},
|
|
648
|
+
};
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
### output.disableMinimize
|
|
652
|
+
|
|
653
|
+
**Change**: This configuration has been deprecated, use `output.minify` instead.
|
|
654
|
+
|
|
655
|
+
**Migration Example**:
|
|
656
|
+
|
|
657
|
+
```typescript
|
|
658
|
+
// v2
|
|
659
|
+
export default {
|
|
660
|
+
output: {
|
|
661
|
+
disableMinimize: true,
|
|
662
|
+
},
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
// v3
|
|
666
|
+
export default {
|
|
667
|
+
output: {
|
|
668
|
+
minify: false,
|
|
669
|
+
},
|
|
670
|
+
};
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
### output.disableSourceMap
|
|
674
|
+
|
|
675
|
+
**Change**: This configuration has been deprecated, use `output.sourceMap` instead.
|
|
676
|
+
|
|
677
|
+
**Migration Example**:
|
|
678
|
+
|
|
679
|
+
```typescript
|
|
680
|
+
// v2
|
|
681
|
+
export default {
|
|
682
|
+
output: {
|
|
683
|
+
disableSourceMap: true,
|
|
684
|
+
},
|
|
685
|
+
};
|
|
686
|
+
|
|
687
|
+
// v3
|
|
688
|
+
export default {
|
|
689
|
+
output: {
|
|
690
|
+
sourceMap: false,
|
|
691
|
+
},
|
|
692
|
+
};
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
### output.enableInlineScripts
|
|
696
|
+
|
|
697
|
+
**Change**: This configuration has been deprecated, use `output.inlineScripts` instead.
|
|
698
|
+
|
|
699
|
+
**Migration Example**:
|
|
700
|
+
|
|
701
|
+
```typescript
|
|
702
|
+
// v2
|
|
703
|
+
export default {
|
|
704
|
+
output: {
|
|
705
|
+
enableInlineScripts: true,
|
|
706
|
+
},
|
|
707
|
+
};
|
|
708
|
+
|
|
709
|
+
// v3
|
|
710
|
+
export default {
|
|
711
|
+
output: {
|
|
712
|
+
inlineScripts: true,
|
|
713
|
+
},
|
|
714
|
+
};
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
### output.enableInlineStyles
|
|
718
|
+
|
|
719
|
+
**Change**: This configuration has been deprecated, use `output.inlineStyles` instead.
|
|
720
|
+
|
|
721
|
+
**Migration Example**:
|
|
722
|
+
|
|
723
|
+
```typescript
|
|
724
|
+
// v2
|
|
725
|
+
export default {
|
|
726
|
+
output: {
|
|
727
|
+
enableInlineStyles: true,
|
|
728
|
+
},
|
|
729
|
+
};
|
|
730
|
+
|
|
731
|
+
// v3
|
|
732
|
+
export default {
|
|
733
|
+
output: {
|
|
734
|
+
inlineStyles: true,
|
|
735
|
+
},
|
|
736
|
+
};
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
### output.enableLatestDecorators
|
|
740
|
+
|
|
741
|
+
**Change**: This configuration has been deprecated, use `source.decorators` instead.
|
|
742
|
+
|
|
743
|
+
**Migration Example**:
|
|
744
|
+
|
|
745
|
+
```typescript
|
|
746
|
+
// v2
|
|
747
|
+
export default {
|
|
748
|
+
output: {
|
|
749
|
+
enableLatestDecorators: true,
|
|
750
|
+
},
|
|
751
|
+
};
|
|
752
|
+
|
|
753
|
+
// v3
|
|
754
|
+
export default {
|
|
755
|
+
source: {
|
|
756
|
+
decorators: {
|
|
757
|
+
version: '2022-03',
|
|
758
|
+
},
|
|
759
|
+
},
|
|
760
|
+
};
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
### output.disableNodePolyfill
|
|
764
|
+
|
|
765
|
+
**Change**: This configuration has been deprecated, use `pluginNodePolyfill` plugin instead.
|
|
766
|
+
|
|
767
|
+
**Migration Example**:
|
|
768
|
+
|
|
769
|
+
```typescript
|
|
770
|
+
// v2
|
|
771
|
+
export default {
|
|
772
|
+
output: {
|
|
773
|
+
disableNodePolyfill: false,
|
|
774
|
+
},
|
|
775
|
+
};
|
|
776
|
+
|
|
777
|
+
// v3
|
|
778
|
+
import { pluginNodePolyfill } from '@rsbuild/plugin-node-polyfill';
|
|
779
|
+
export default {
|
|
780
|
+
builderPlugins: [pluginNodePolyfill()],
|
|
781
|
+
};
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
## plugins
|
|
785
|
+
|
|
786
|
+
### app-tools plugin
|
|
787
|
+
|
|
788
|
+
**Change**: This plugin does not require any parameters.
|
|
789
|
+
|
|
790
|
+
**Migration Example**:
|
|
791
|
+
|
|
792
|
+
```typescript
|
|
793
|
+
// v2
|
|
794
|
+
plugins: [
|
|
795
|
+
appTools({
|
|
796
|
+
bundler: 'rspack'
|
|
797
|
+
})
|
|
798
|
+
],
|
|
799
|
+
|
|
800
|
+
// v3
|
|
801
|
+
plugins: [
|
|
802
|
+
appTools()
|
|
803
|
+
],
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
## security
|
|
807
|
+
|
|
808
|
+
### security.sri
|
|
809
|
+
|
|
810
|
+
**Change**: `security.sri.hashLoading` is no longer needed and can be removed directly.
|
|
811
|
+
|
|
812
|
+
## runtime
|
|
813
|
+
|
|
814
|
+
### runtime.router
|
|
815
|
+
|
|
816
|
+
**Change**: No longer needed, can be removed directly. This configuration has been moved to the router configuration in modern.runtime.ts.
|
|
817
|
+
|
|
818
|
+
**Migration Example**:
|
|
819
|
+
|
|
820
|
+
```typescript
|
|
821
|
+
// v2
|
|
822
|
+
// modern.config.ts
|
|
823
|
+
export default {
|
|
824
|
+
runtime: {
|
|
825
|
+
router: {
|
|
826
|
+
// Router configuration
|
|
827
|
+
},
|
|
828
|
+
},
|
|
829
|
+
};
|
|
830
|
+
|
|
831
|
+
// v3
|
|
832
|
+
// modern.runtime.ts
|
|
833
|
+
import { defineRuntimeConfig } from '@modern-js/runtime';
|
|
834
|
+
|
|
835
|
+
export default defineRuntimeConfig({
|
|
836
|
+
router: {
|
|
837
|
+
// Router configuration
|
|
838
|
+
},
|
|
839
|
+
});
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
### runtime.state
|
|
843
|
+
|
|
844
|
+
**Change**: This configuration has been deprecated, it is recommended to use a third-party state management library.
|
|
845
|
+
|
|
846
|
+
### runtime.masterApp
|
|
847
|
+
|
|
848
|
+
**Change**: This configuration has been deprecated, move this configuration to the masterApp configuration in modern.runtime.ts.
|
|
849
|
+
|
|
850
|
+
**Migration Example**:
|
|
851
|
+
|
|
852
|
+
```typescript
|
|
853
|
+
// v2
|
|
854
|
+
// modern.config.ts
|
|
855
|
+
export default {
|
|
856
|
+
runtime: {
|
|
857
|
+
masterApp: {
|
|
858
|
+
apps: [
|
|
859
|
+
{
|
|
860
|
+
name: 'Table',
|
|
861
|
+
entry: 'http://localhost:8081',
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
name: 'Dashboard',
|
|
865
|
+
entry: 'http://localhost:8082',
|
|
866
|
+
},
|
|
867
|
+
],
|
|
868
|
+
},
|
|
869
|
+
},
|
|
870
|
+
};
|
|
871
|
+
|
|
872
|
+
// v3
|
|
873
|
+
// modern.runtime.ts
|
|
874
|
+
import { defineRuntimeConfig } from '@modern-js/runtime';
|
|
875
|
+
|
|
876
|
+
export default defineRuntimeConfig({
|
|
877
|
+
masterApp: {
|
|
878
|
+
apps: [
|
|
879
|
+
{
|
|
880
|
+
name: 'Table',
|
|
881
|
+
entry: 'http://localhost:8081',
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
name: 'Dashboard',
|
|
885
|
+
entry: 'http://localhost:8082',
|
|
886
|
+
},
|
|
887
|
+
],
|
|
888
|
+
},
|
|
889
|
+
});
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
## performance
|
|
893
|
+
|
|
894
|
+
### performance.bundleAnalyze
|
|
895
|
+
|
|
896
|
+
**Change**: This configuration has been deprecated, it is recommended to use [Rsdoctor](https://rsbuild.rs/guide/debug/rsdoctor) to analyze bundle size.
|
|
897
|
+
|
|
898
|
+
### performance.transformLodash
|
|
899
|
+
|
|
900
|
+
**Change**: No longer needed, can be removed directly.
|
|
901
|
+
|
|
902
|
+
**Migration Example**:
|
|
903
|
+
|
|
904
|
+
```typescript
|
|
905
|
+
// v2
|
|
906
|
+
export default {
|
|
907
|
+
performance: {
|
|
908
|
+
transformLodash: true,
|
|
909
|
+
},
|
|
910
|
+
};
|
|
911
|
+
|
|
912
|
+
// v3 - Remove this configuration directly
|
|
913
|
+
export default {
|
|
914
|
+
// Configuration...
|
|
915
|
+
};
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
## experiments
|
|
919
|
+
|
|
920
|
+
### experiments.lazyCompilation
|
|
921
|
+
|
|
922
|
+
**Change**: This configuration has been deprecated, changed to `dev.lazyCompilation`.
|
|
923
|
+
|
|
924
|
+
**Migration Example**:
|
|
925
|
+
|
|
926
|
+
```typescript
|
|
927
|
+
// v2
|
|
928
|
+
experiments: {
|
|
929
|
+
lazyCompilation: true;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
// v3
|
|
933
|
+
dev: {
|
|
934
|
+
lazyCompilation: true;
|
|
935
|
+
}
|
|
936
|
+
```
|