@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.
Files changed (142) hide show
  1. package/docs/en/apis/app/commands.mdx +6 -30
  2. package/docs/en/components/bff-upload.mdx +3 -5
  3. package/docs/en/components/bundler.mdx +1 -1
  4. package/docs/en/components/enable-bff.mdx +6 -2
  5. package/docs/en/components/enable-ssg.mdx +1 -0
  6. package/docs/en/components/esbuild.mdx +2 -2
  7. package/docs/en/components/extend-bff-function.mdx +2 -4
  8. package/docs/en/components/hono.mdx +119 -0
  9. package/docs/en/components/international/custom-instance-code.mdx +16 -0
  10. package/docs/en/components/international/init-options-desc.mdx +1 -0
  11. package/docs/en/components/international/install-command.mdx +15 -1
  12. package/docs/en/components/international/instance-code.mdx +26 -0
  13. package/docs/en/configure/app/builder-plugins.mdx +1 -2
  14. package/docs/en/configure/app/dev/server.mdx +108 -0
  15. package/docs/en/configure/app/experiments/source-build.mdx +0 -1
  16. package/docs/en/configure/app/output/assets-retry.mdx +1 -1
  17. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  18. package/docs/en/configure/app/output/filename.mdx +2 -4
  19. package/docs/en/configure/app/output/temp-dir.mdx +3 -3
  20. package/docs/en/configure/app/performance/build-cache.mdx +1 -1
  21. package/docs/en/configure/app/performance/profile.mdx +1 -1
  22. package/docs/en/configure/app/plugins.mdx +1 -3
  23. package/docs/en/configure/app/runtime/router.mdx +0 -4
  24. package/docs/en/configure/app/security/sri.mdx +0 -1
  25. package/docs/en/configure/app/source/alias.mdx +1 -1
  26. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  27. package/docs/en/configure/app/source/include.mdx +2 -14
  28. package/docs/en/configure/app/tools/dev-server.mdx +8 -8
  29. package/docs/en/configure/app/usage.mdx +0 -12
  30. package/docs/en/guides/_meta.json +5 -0
  31. package/docs/en/guides/advanced-features/bff/_meta.json +9 -1
  32. package/docs/en/guides/advanced-features/bff/cross-project.mdx +1 -1
  33. package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -15
  34. package/docs/en/guides/advanced-features/bff/function.mdx +4 -4
  35. package/docs/en/guides/advanced-features/bff/operators.mdx +628 -0
  36. package/docs/en/guides/advanced-features/bff/sdk.mdx +17 -9
  37. package/docs/en/guides/advanced-features/bff/upload.mdx +3 -1
  38. package/docs/en/guides/advanced-features/international/configuration.mdx +7 -16
  39. package/docs/en/guides/advanced-features/international/quick-start.mdx +4 -32
  40. package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +1 -1
  41. package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +18 -4
  42. package/docs/en/guides/advanced-features/rspack-start.mdx +1 -1
  43. package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +62 -5
  44. package/docs/en/guides/basic-features/data/data-cache.mdx +60 -76
  45. package/docs/en/guides/basic-features/data/data-fetch.mdx +15 -14
  46. package/docs/en/guides/basic-features/debug/proxy.mdx +6 -9
  47. package/docs/en/guides/basic-features/render/rsc.mdx +24 -19
  48. package/docs/en/guides/basic-features/render/ssg.mdx +4 -9
  49. package/docs/en/guides/basic-features/render/ssr-cache.mdx +0 -4
  50. package/docs/en/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  51. package/docs/en/guides/get-started/tech-stack.mdx +1 -1
  52. package/docs/en/guides/upgrade/_meta.json +1 -0
  53. package/docs/en/guides/upgrade/config.mdx +936 -0
  54. package/docs/en/guides/upgrade/entry.mdx +463 -0
  55. package/docs/en/guides/upgrade/other.mdx +83 -0
  56. package/docs/en/guides/upgrade/overview.mdx +33 -0
  57. package/docs/en/guides/upgrade/tailwindcss.mdx +130 -0
  58. package/docs/en/guides/upgrade/web-server.mdx +91 -0
  59. package/docs/en/plugin/_meta.json +5 -0
  60. package/docs/en/plugin/cli-plugins/_meta.json +1 -1
  61. package/docs/en/plugin/cli-plugins/api.mdx +13 -63
  62. package/docs/en/plugin/cli-plugins/life-cycle.mdx +0 -4
  63. package/docs/en/plugin/introduction.mdx +8 -20
  64. package/docs/en/plugin/plugin-system.mdx +3 -3
  65. package/docs/en/plugin/runtime-plugins/_meta.json +1 -1
  66. package/docs/en/plugin/runtime-plugins/api.mdx +1 -1
  67. package/docs/en/plugin/server-plugins/_meta.json +1 -0
  68. package/docs/en/plugin/server-plugins/api.mdx +210 -1
  69. package/docs/en/plugin/server-plugins/life-cycle.mdx +41 -1
  70. package/docs/zh/apis/app/commands.mdx +6 -30
  71. package/docs/zh/components/bff-operator-code.mdx +5 -0
  72. package/docs/zh/components/bff-upload.mdx +0 -2
  73. package/docs/zh/components/bundler.mdx +1 -1
  74. package/docs/zh/components/enable-bff.mdx +6 -2
  75. package/docs/zh/components/enable-ssg.mdx +3 -1
  76. package/docs/zh/components/esbuild.mdx +2 -2
  77. package/docs/zh/components/extend-bff-function.mdx +2 -4
  78. package/docs/zh/components/hono.mdx +119 -0
  79. package/docs/zh/components/international/custom-instance-code.mdx +16 -0
  80. package/docs/zh/components/international/init-options-desc.mdx +1 -0
  81. package/docs/zh/components/international/install-command.mdx +15 -0
  82. package/docs/zh/components/international/instance-code.mdx +26 -0
  83. package/docs/zh/configure/app/builder-plugins.mdx +1 -2
  84. package/docs/zh/configure/app/dev/server.mdx +109 -2
  85. package/docs/zh/configure/app/experiments/source-build.mdx +0 -1
  86. package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
  87. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  88. package/docs/zh/configure/app/output/filename.mdx +2 -4
  89. package/docs/zh/configure/app/output/temp-dir.mdx +3 -3
  90. package/docs/zh/configure/app/performance/build-cache.mdx +1 -1
  91. package/docs/zh/configure/app/performance/profile.mdx +1 -1
  92. package/docs/zh/configure/app/plugins.mdx +1 -2
  93. package/docs/zh/configure/app/runtime/router.mdx +0 -4
  94. package/docs/zh/configure/app/security/sri.mdx +0 -1
  95. package/docs/zh/configure/app/source/alias.mdx +1 -1
  96. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  97. package/docs/zh/configure/app/source/include.mdx +2 -16
  98. package/docs/zh/configure/app/tools/dev-server.mdx +5 -5
  99. package/docs/zh/configure/app/usage.mdx +0 -12
  100. package/docs/zh/guides/advanced-features/bff/_meta.json +9 -1
  101. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +2 -16
  102. package/docs/zh/guides/advanced-features/bff/operators.mdx +628 -0
  103. package/docs/zh/guides/advanced-features/bff/sdk.mdx +19 -12
  104. package/docs/zh/guides/advanced-features/bff/upload.mdx +3 -1
  105. package/docs/zh/guides/advanced-features/international/configuration.mdx +7 -16
  106. package/docs/zh/guides/advanced-features/international/quick-start.mdx +2 -25
  107. package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +1 -1
  108. package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +18 -4
  109. package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +60 -5
  110. package/docs/zh/guides/basic-features/data/data-cache.mdx +47 -54
  111. package/docs/zh/guides/basic-features/data/data-fetch.mdx +9 -12
  112. package/docs/zh/guides/basic-features/debug/proxy.mdx +4 -7
  113. package/docs/zh/guides/basic-features/render/rsc.mdx +23 -37
  114. package/docs/zh/guides/basic-features/render/ssr-cache.mdx +0 -4
  115. package/docs/zh/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  116. package/docs/zh/guides/get-started/tech-stack.mdx +1 -1
  117. package/docs/zh/guides/troubleshooting/builder.mdx +1 -1
  118. package/docs/zh/guides/upgrade/config.mdx +132 -1
  119. package/docs/zh/plugin/_meta.json +5 -0
  120. package/docs/zh/plugin/cli-plugins/_meta.json +1 -1
  121. package/docs/zh/plugin/cli-plugins/api.mdx +15 -65
  122. package/docs/zh/plugin/cli-plugins/life-cycle.mdx +0 -4
  123. package/docs/zh/plugin/introduction.mdx +4 -16
  124. package/docs/zh/plugin/plugin-system.mdx +3 -14
  125. package/docs/zh/plugin/runtime-plugins/_meta.json +1 -1
  126. package/docs/zh/plugin/runtime-plugins/api.mdx +1 -1
  127. package/docs/zh/plugin/server-plugins/_meta.json +1 -0
  128. package/docs/zh/plugin/server-plugins/api.mdx +210 -1
  129. package/docs/zh/plugin/server-plugins/life-cycle.mdx +41 -1
  130. package/package.json +2 -2
  131. package/src/components/FrameworkCode/index.tsx +605 -0
  132. package/docs/en/configure/app/performance/bundle-analyze.mdx +0 -24
  133. package/docs/en/configure/app/tools/babel.mdx +0 -225
  134. package/docs/en/plugin/cli-plugins/migration.mdx +0 -83
  135. package/docs/en/plugin/runtime-plugins/migration.mdx +0 -110
  136. package/docs/zh/components/default-mwa-generate.mdx +0 -4
  137. package/docs/zh/configure/app/performance/bundle-analyze.mdx +0 -24
  138. package/docs/zh/configure/app/tools/babel.mdx +0 -224
  139. package/docs/zh/plugin/cli-plugins/migration.mdx +0 -83
  140. package/docs/zh/plugin/runtime-plugins/migration.mdx +0 -110
  141. /package/docs/en/components/{router-legacy-tip.mdx → upgrade-config-deploy.mdx} +0 -0
  142. /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
+ ```