@modern-js/main-doc 2.69.7 → 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 (618) hide show
  1. package/docs/en/{_meta.json → _nav.json} +5 -1
  2. package/docs/en/apis/app/commands.mdx +8 -33
  3. package/docs/en/apis/app/hooks/src/entry.mdx +1 -5
  4. package/docs/en/apis/app/hooks/src/entry.server.mdx +4 -5
  5. package/docs/en/apis/app/hooks/src/routes.mdx +2 -2
  6. package/docs/en/apis/app/runtime/_meta.json +0 -18
  7. package/docs/en/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  8. package/docs/en/apis/app/runtime/router/router.mdx +1 -1
  9. package/docs/en/apis/app/runtime/utility/css-in-js.mdx +3 -2
  10. package/docs/en/community/blog/v2-release-note.mdx +0 -2
  11. package/docs/en/community/contributing-guide.mdx +10 -12
  12. package/docs/en/components/bff-upload.mdx +19 -17
  13. package/docs/en/components/build-output.mdx +45 -0
  14. package/docs/en/components/bundler.mdx +1 -1
  15. package/docs/en/components/debug-app.mdx +1 -1
  16. package/docs/en/components/enable-bff-caution.mdx +2 -2
  17. package/docs/en/components/enable-bff.mdx +42 -8
  18. package/docs/en/components/enable-ssg.mdx +49 -0
  19. package/docs/en/components/entry-scan-logic.mdx +7 -0
  20. package/docs/en/components/esbuild.mdx +2 -2
  21. package/docs/en/components/extend-bff-function.mdx +2 -4
  22. package/docs/en/components/hono.mdx +119 -0
  23. package/docs/en/components/init-app.mdx +40 -17
  24. package/docs/en/components/international/custom-instance-code.mdx +16 -0
  25. package/docs/en/components/international/init-options-desc.mdx +1 -0
  26. package/docs/en/components/international/install-command.mdx +23 -0
  27. package/docs/en/components/international/instance-code.mdx +26 -0
  28. package/docs/en/components/international/introduce.mdx +2 -0
  29. package/docs/en/components/module-federation.mdx +4 -4
  30. package/docs/en/components/nodeVersion.mdx +2 -6
  31. package/docs/en/components/prerequisites.mdx +1 -1
  32. package/docs/en/components/ua-polyfill.mdx +16 -12
  33. package/docs/en/components/upgrade-config-deploy.mdx +0 -0
  34. package/docs/en/configure/_meta.json +7 -8
  35. package/docs/en/configure/app/bff/cross-project.mdx +24 -0
  36. package/docs/en/configure/app/builder-plugins.mdx +1 -2
  37. package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
  38. package/docs/en/configure/app/dev/server.mdx +211 -0
  39. package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
  40. package/docs/en/configure/app/experiments/source-build.mdx +0 -1
  41. package/docs/en/configure/app/html/app-icon.mdx +1 -23
  42. package/docs/en/configure/app/output/assets-retry.mdx +1 -1
  43. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  44. package/docs/en/configure/app/output/filename.mdx +2 -4
  45. package/docs/en/configure/app/output/inline-scripts.mdx +1 -1
  46. package/docs/en/configure/app/output/override-browserslist.mdx +6 -4
  47. package/docs/en/configure/app/output/source-map.mdx +6 -3
  48. package/docs/en/configure/app/output/ssg.mdx +12 -43
  49. package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
  50. package/docs/en/configure/app/output/temp-dir.mdx +3 -3
  51. package/docs/en/configure/app/performance/build-cache.mdx +1 -5
  52. package/docs/en/configure/app/performance/profile.mdx +1 -1
  53. package/docs/en/configure/app/plugins.mdx +1 -3
  54. package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
  55. package/docs/en/configure/app/resolve/alias.mdx +13 -0
  56. package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
  57. package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
  58. package/docs/en/configure/app/resolve/extensions.mdx +18 -0
  59. package/docs/en/configure/app/runtime/0-intro.mdx +2 -51
  60. package/docs/en/configure/app/runtime/router.mdx +0 -4
  61. package/docs/en/configure/app/security/check-syntax.mdx +1 -1
  62. package/docs/en/configure/app/security/sri.mdx +0 -1
  63. package/docs/en/configure/app/server/port.mdx +1 -21
  64. package/docs/en/configure/app/server/rsc.mdx +30 -0
  65. package/docs/en/configure/app/server/ssr.mdx +20 -9
  66. package/docs/en/configure/app/source/alias.mdx +1 -1
  67. package/docs/en/configure/app/source/decorators.mdx +4 -2
  68. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  69. package/docs/en/configure/app/source/entries.mdx +0 -2
  70. package/docs/en/configure/app/source/include.mdx +2 -14
  71. package/docs/en/configure/app/source/main-entry-name.mdx +4 -4
  72. package/docs/en/configure/app/source/transform-import.mdx +1 -59
  73. package/docs/en/configure/app/tools/bundler-chain.mdx +5 -5
  74. package/docs/en/configure/app/tools/css-extract.mdx +1 -1
  75. package/docs/en/configure/app/tools/dev-server.mdx +22 -256
  76. package/docs/en/configure/app/tools/html-plugin.mdx +3 -3
  77. package/docs/en/configure/app/tools/lightningcss-loader.mdx +0 -1
  78. package/docs/en/configure/app/tools/swc.mdx +1 -43
  79. package/docs/en/configure/app/usage.mdx +5 -27
  80. package/docs/en/guides/_meta.json +5 -1
  81. package/docs/en/guides/advanced-features/_meta.json +6 -0
  82. package/docs/en/guides/advanced-features/bff/_meta.json +9 -1
  83. package/docs/en/guides/advanced-features/bff/cross-project.mdx +2 -8
  84. package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
  85. package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -15
  86. package/docs/en/guides/advanced-features/bff/function.mdx +6 -10
  87. package/docs/en/guides/advanced-features/bff/operators.mdx +628 -0
  88. package/docs/en/guides/advanced-features/bff/sdk.mdx +20 -12
  89. package/docs/en/guides/advanced-features/bff/upload.mdx +3 -1
  90. package/docs/en/guides/advanced-features/build-performance.mdx +23 -26
  91. package/docs/en/guides/advanced-features/compatibility.mdx +53 -9
  92. package/docs/en/guides/advanced-features/international/_meta.json +11 -0
  93. package/docs/en/guides/advanced-features/international/advanced.mdx +193 -0
  94. package/docs/en/guides/advanced-features/international/api.mdx +400 -0
  95. package/docs/en/guides/advanced-features/international/basic.mdx +417 -0
  96. package/docs/en/guides/advanced-features/international/best-practices.mdx +135 -0
  97. package/docs/en/guides/advanced-features/international/configuration.mdx +428 -0
  98. package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
  99. package/docs/en/guides/advanced-features/international/quick-start.mdx +126 -0
  100. package/docs/en/guides/advanced-features/international/resource-loading.mdx +417 -0
  101. package/docs/en/guides/advanced-features/international/routing.mdx +212 -0
  102. package/docs/en/guides/advanced-features/international.mdx +37 -0
  103. package/docs/en/guides/advanced-features/low-level.mdx +21 -16
  104. package/docs/en/guides/advanced-features/page-performance/code-split.mdx +4 -4
  105. package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  106. package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +8 -22
  107. package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
  108. package/docs/en/guides/advanced-features/rspack-start.mdx +3 -23
  109. package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
  110. package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +121 -36
  111. package/docs/en/guides/advanced-features/web-server.mdx +82 -299
  112. package/docs/en/guides/basic-features/_meta.json +6 -1
  113. package/docs/en/guides/basic-features/css/css-in-js.mdx +46 -11
  114. package/docs/en/guides/basic-features/css/css-modules.mdx +5 -17
  115. package/docs/en/guides/basic-features/css/css.mdx +3 -3
  116. package/docs/en/guides/basic-features/css/tailwindcss.mdx +5 -89
  117. package/docs/en/guides/basic-features/data/data-cache.mdx +65 -77
  118. package/docs/en/guides/basic-features/data/data-fetch.mdx +19 -18
  119. package/docs/en/guides/basic-features/data/data-write.mdx +2 -2
  120. package/docs/en/guides/basic-features/debug/mock.mdx +4 -1
  121. package/docs/en/guides/basic-features/debug/proxy.mdx +6 -17
  122. package/docs/en/guides/basic-features/debug/rsdoctor.mdx +5 -5
  123. package/docs/en/guides/basic-features/deploy.mdx +25 -18
  124. package/docs/en/guides/basic-features/env-vars.mdx +1 -1
  125. package/docs/en/guides/basic-features/html.mdx +1 -1
  126. package/docs/en/guides/basic-features/output-files.mdx +3 -3
  127. package/docs/en/guides/basic-features/render/_meta.json +1 -1
  128. package/docs/en/guides/basic-features/render/before-render.mdx +16 -23
  129. package/docs/en/guides/basic-features/render/overview.mdx +51 -0
  130. package/docs/en/guides/basic-features/render/rsc.mdx +399 -0
  131. package/docs/en/guides/basic-features/render/ssg.mdx +26 -67
  132. package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -10
  133. package/docs/en/guides/basic-features/render/ssr.mdx +31 -31
  134. package/docs/en/guides/basic-features/render/streaming-ssr.mdx +29 -9
  135. package/docs/en/guides/basic-features/routes/_meta.json +1 -0
  136. package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
  137. package/docs/en/guides/basic-features/{routes.mdx → routes/routes.mdx} +7 -110
  138. package/docs/en/guides/basic-features/static-assets/json-files.mdx +21 -3
  139. package/docs/en/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  140. package/docs/en/guides/basic-features/static-assets.mdx +2 -2
  141. package/docs/en/guides/concept/builder.mdx +27 -12
  142. package/docs/en/guides/concept/entries.mdx +139 -147
  143. package/docs/en/guides/get-started/glossary.mdx +0 -18
  144. package/docs/en/guides/get-started/introduction.mdx +1 -4
  145. package/docs/en/guides/get-started/quick-start.mdx +4 -71
  146. package/docs/en/guides/get-started/tech-stack.mdx +7 -27
  147. package/docs/en/guides/get-started/upgrade.mdx +30 -23
  148. package/docs/en/guides/topic-detail/_meta.json +0 -12
  149. package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -1
  150. package/docs/en/guides/topic-detail/module-federation/application.mdx +16 -15
  151. package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
  152. package/docs/en/guides/topic-detail/module-federation/introduce.mdx +5 -4
  153. package/docs/en/guides/topic-detail/module-federation/ssr.mdx +50 -2
  154. package/docs/en/guides/topic-detail/module-federation/usage.mdx +10 -30
  155. package/docs/en/guides/troubleshooting/builder.mdx +3 -82
  156. package/docs/en/guides/troubleshooting/cli.mdx +6 -30
  157. package/docs/en/guides/troubleshooting/dependencies.mdx +22 -22
  158. package/docs/en/guides/upgrade/_meta.json +1 -0
  159. package/docs/en/guides/upgrade/config.mdx +936 -0
  160. package/docs/en/guides/upgrade/entry.mdx +463 -0
  161. package/docs/en/guides/upgrade/other.mdx +83 -0
  162. package/docs/en/guides/upgrade/overview.mdx +33 -0
  163. package/docs/en/guides/upgrade/tailwindcss.mdx +130 -0
  164. package/docs/en/guides/upgrade/web-server.mdx +91 -0
  165. package/docs/en/plugin/_meta.json +5 -0
  166. package/docs/en/plugin/cli-plugins/_meta.json +1 -1
  167. package/docs/en/plugin/cli-plugins/api.mdx +17 -68
  168. package/docs/en/plugin/cli-plugins/life-cycle.mdx +0 -4
  169. package/docs/en/plugin/introduction.mdx +44 -44
  170. package/docs/en/plugin/official/_meta.json +0 -5
  171. package/docs/en/plugin/official/cli-plugins/_meta.json +1 -1
  172. package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  173. package/docs/en/plugin/official/cli-plugins.mdx +0 -2
  174. package/docs/en/plugin/plugin-system.mdx +69 -62
  175. package/docs/en/plugin/runtime-plugins/_meta.json +1 -1
  176. package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
  177. package/docs/en/plugin/server-plugins/_meta.json +1 -0
  178. package/docs/en/plugin/server-plugins/api.mdx +210 -1
  179. package/docs/en/plugin/server-plugins/life-cycle.mdx +41 -1
  180. package/docs/en/tutorials/_meta.json +0 -10
  181. package/docs/en/tutorials/examples/csr-auth.mdx +1 -1
  182. package/docs/en/tutorials/foundations/introduction.mdx +9 -25
  183. package/docs/zh/{_meta.json → _nav.json} +10 -6
  184. package/docs/zh/apis/app/commands.mdx +8 -33
  185. package/docs/zh/apis/app/hooks/src/entry.mdx +1 -5
  186. package/docs/zh/apis/app/hooks/src/entry.server.mdx +4 -5
  187. package/docs/zh/apis/app/hooks/src/routes.mdx +2 -2
  188. package/docs/zh/apis/app/runtime/_meta.json +0 -18
  189. package/docs/zh/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  190. package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +3 -2
  191. package/docs/zh/community/blog/v2-release-note.mdx +0 -2
  192. package/docs/zh/community/contributing-guide.mdx +10 -12
  193. package/docs/zh/components/auto-upgrade.mdx +0 -0
  194. package/docs/zh/components/bff-operator-code.mdx +5 -0
  195. package/docs/zh/components/bff-upload.mdx +8 -7
  196. package/docs/zh/components/build-output.mdx +45 -0
  197. package/docs/zh/components/bundler.mdx +1 -1
  198. package/docs/zh/components/debug-app.mdx +1 -1
  199. package/docs/zh/components/enable-bff-caution.mdx +1 -1
  200. package/docs/zh/components/enable-bff.mdx +41 -8
  201. package/docs/zh/components/enable-ssg.mdx +49 -0
  202. package/docs/zh/components/entry-scan-logic.mdx +7 -0
  203. package/docs/zh/components/esbuild.mdx +2 -2
  204. package/docs/zh/components/extend-bff-function.mdx +2 -4
  205. package/docs/zh/components/hono.mdx +119 -0
  206. package/docs/zh/components/init-app.mdx +40 -18
  207. package/docs/zh/components/international/custom-instance-code.mdx +16 -0
  208. package/docs/zh/components/international/init-options-desc.mdx +1 -0
  209. package/docs/zh/components/international/install-command.mdx +23 -0
  210. package/docs/zh/components/international/instance-code.mdx +26 -0
  211. package/docs/zh/components/international/introduce.mdx +2 -0
  212. package/docs/zh/components/international/platform-support.mdx +0 -0
  213. package/docs/zh/components/module-federation.mdx +4 -4
  214. package/docs/zh/components/new-entry-tooltip.mdx +0 -0
  215. package/docs/zh/components/nodeVersion.mdx +3 -7
  216. package/docs/zh/components/prerequisites.mdx +1 -1
  217. package/docs/zh/components/self-route-example.mdx +3 -3
  218. package/docs/zh/components/ua-polyfill.mdx +11 -6
  219. package/docs/zh/components/upgrade-browserslist.mdx +0 -0
  220. package/docs/zh/components/upgrade-config-deploy.mdx +0 -0
  221. package/docs/zh/configure/_meta.json +7 -8
  222. package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
  223. package/docs/zh/configure/app/builder-plugins.mdx +1 -2
  224. package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
  225. package/docs/zh/configure/app/dev/server.mdx +211 -0
  226. package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
  227. package/docs/zh/configure/app/experiments/source-build.mdx +0 -1
  228. package/docs/zh/configure/app/html/app-icon.mdx +1 -23
  229. package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
  230. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  231. package/docs/zh/configure/app/output/filename.mdx +2 -4
  232. package/docs/zh/configure/app/output/inline-scripts.mdx +1 -1
  233. package/docs/zh/configure/app/output/override-browserslist.mdx +3 -3
  234. package/docs/zh/configure/app/output/source-map.mdx +10 -3
  235. package/docs/zh/configure/app/output/ssg.mdx +13 -45
  236. package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
  237. package/docs/zh/configure/app/output/temp-dir.mdx +3 -3
  238. package/docs/zh/configure/app/performance/build-cache.mdx +1 -5
  239. package/docs/zh/configure/app/performance/profile.mdx +1 -1
  240. package/docs/zh/configure/app/plugins.mdx +1 -2
  241. package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
  242. package/docs/zh/configure/app/resolve/alias.mdx +13 -0
  243. package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
  244. package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
  245. package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
  246. package/docs/zh/configure/app/runtime/0-intro.mdx +2 -53
  247. package/docs/zh/configure/app/runtime/router.mdx +0 -4
  248. package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
  249. package/docs/zh/configure/app/security/sri.mdx +0 -1
  250. package/docs/zh/configure/app/server/port.mdx +2 -21
  251. package/docs/zh/configure/app/server/rsc.mdx +30 -0
  252. package/docs/zh/configure/app/server/ssr.mdx +21 -11
  253. package/docs/zh/configure/app/source/alias.mdx +1 -1
  254. package/docs/zh/configure/app/source/decorators.mdx +4 -4
  255. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  256. package/docs/zh/configure/app/source/entries.mdx +0 -2
  257. package/docs/zh/configure/app/source/include.mdx +2 -16
  258. package/docs/zh/configure/app/source/main-entry-name.mdx +4 -4
  259. package/docs/zh/configure/app/source/transform-import.mdx +1 -59
  260. package/docs/zh/configure/app/tools/bundler-chain.mdx +6 -6
  261. package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
  262. package/docs/zh/configure/app/tools/dev-server.mdx +14 -248
  263. package/docs/zh/configure/app/tools/html-plugin.mdx +3 -2
  264. package/docs/zh/configure/app/tools/lightningcss-loader.mdx +0 -1
  265. package/docs/zh/configure/app/tools/swc.mdx +1 -43
  266. package/docs/zh/configure/app/usage.mdx +6 -28
  267. package/docs/zh/guides/_meta.json +5 -1
  268. package/docs/zh/guides/advanced-features/_meta.json +6 -1
  269. package/docs/zh/guides/advanced-features/bff/_meta.json +9 -1
  270. package/docs/zh/guides/advanced-features/bff/cross-project.mdx +8 -16
  271. package/docs/zh/guides/advanced-features/bff/extend-server.mdx +25 -8
  272. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +2 -16
  273. package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
  274. package/docs/zh/guides/advanced-features/bff/operators.mdx +628 -0
  275. package/docs/zh/guides/advanced-features/bff/sdk.mdx +23 -16
  276. package/docs/zh/guides/advanced-features/bff/upload.mdx +3 -1
  277. package/docs/zh/guides/advanced-features/build-performance.mdx +23 -30
  278. package/docs/zh/guides/advanced-features/compatibility.mdx +44 -0
  279. package/docs/zh/guides/advanced-features/international/_meta.json +11 -0
  280. package/docs/zh/guides/advanced-features/international/advanced.mdx +193 -0
  281. package/docs/zh/guides/advanced-features/international/api.mdx +400 -0
  282. package/docs/zh/guides/advanced-features/international/basic.mdx +416 -0
  283. package/docs/zh/guides/advanced-features/international/best-practices.mdx +135 -0
  284. package/docs/zh/guides/advanced-features/international/configuration.mdx +432 -0
  285. package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
  286. package/docs/zh/guides/advanced-features/international/quick-start.mdx +126 -0
  287. package/docs/zh/guides/advanced-features/international/resource-loading.mdx +417 -0
  288. package/docs/zh/guides/advanced-features/international/routing.mdx +212 -0
  289. package/docs/zh/guides/advanced-features/international.mdx +36 -0
  290. package/docs/zh/guides/advanced-features/low-level.mdx +21 -16
  291. package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +3 -3
  292. package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  293. package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +8 -22
  294. package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
  295. package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
  296. package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +120 -37
  297. package/docs/zh/guides/advanced-features/web-server.mdx +79 -300
  298. package/docs/zh/guides/basic-features/_meta.json +6 -1
  299. package/docs/zh/guides/basic-features/css/css-in-js.mdx +40 -5
  300. package/docs/zh/guides/basic-features/css/css-modules.mdx +6 -17
  301. package/docs/zh/guides/basic-features/css/css.mdx +2 -2
  302. package/docs/zh/guides/basic-features/css/tailwindcss.mdx +6 -90
  303. package/docs/zh/guides/basic-features/data/data-cache.mdx +55 -59
  304. package/docs/zh/guides/basic-features/data/data-fetch.mdx +14 -16
  305. package/docs/zh/guides/basic-features/data/data-write.mdx +4 -4
  306. package/docs/zh/guides/basic-features/debug/mock.mdx +4 -1
  307. package/docs/zh/guides/basic-features/debug/proxy.mdx +4 -15
  308. package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +6 -6
  309. package/docs/zh/guides/basic-features/deploy.mdx +24 -20
  310. package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
  311. package/docs/zh/guides/basic-features/html.mdx +2 -2
  312. package/docs/zh/guides/basic-features/output-files.mdx +3 -3
  313. package/docs/zh/guides/basic-features/render/_meta.json +1 -1
  314. package/docs/zh/guides/basic-features/render/before-render.mdx +17 -24
  315. package/docs/zh/guides/basic-features/render/overview.mdx +52 -0
  316. package/docs/zh/guides/basic-features/render/rsc.mdx +399 -0
  317. package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
  318. package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -9
  319. package/docs/zh/guides/basic-features/render/ssr.mdx +34 -31
  320. package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +34 -14
  321. package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
  322. package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
  323. package/docs/zh/guides/basic-features/{routes.mdx → routes/routes.mdx} +8 -114
  324. package/docs/zh/guides/basic-features/static-assets/json-files.mdx +21 -3
  325. package/docs/zh/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  326. package/docs/zh/guides/basic-features/static-assets.mdx +2 -2
  327. package/docs/zh/guides/basic-features/testing/cypress.mdx +5 -5
  328. package/docs/zh/guides/basic-features/testing/jest.mdx +12 -12
  329. package/docs/zh/guides/concept/builder.mdx +26 -11
  330. package/docs/zh/guides/concept/entries.mdx +95 -92
  331. package/docs/zh/guides/get-started/glossary.mdx +0 -18
  332. package/docs/zh/guides/get-started/introduction.mdx +1 -5
  333. package/docs/zh/guides/get-started/quick-start.mdx +5 -72
  334. package/docs/zh/guides/get-started/tech-stack.mdx +8 -28
  335. package/docs/zh/guides/get-started/upgrade.mdx +30 -23
  336. package/docs/zh/guides/topic-detail/_meta.json +0 -12
  337. package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -1
  338. package/docs/zh/guides/topic-detail/module-federation/application.mdx +18 -16
  339. package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
  340. package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +4 -4
  341. package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +51 -5
  342. package/docs/zh/guides/topic-detail/module-federation/usage.mdx +11 -31
  343. package/docs/zh/guides/troubleshooting/builder.mdx +4 -85
  344. package/docs/zh/guides/troubleshooting/cli.mdx +6 -30
  345. package/docs/zh/guides/troubleshooting/dependencies.mdx +23 -23
  346. package/docs/zh/guides/upgrade/_meta.json +1 -0
  347. package/docs/zh/guides/upgrade/config.mdx +940 -0
  348. package/docs/zh/guides/upgrade/entry.mdx +463 -0
  349. package/docs/zh/guides/upgrade/other.md +90 -0
  350. package/docs/zh/guides/upgrade/overview.mdx +36 -0
  351. package/docs/zh/guides/upgrade/tailwindcss.mdx +130 -0
  352. package/docs/zh/guides/upgrade/web-server.md +93 -0
  353. package/docs/zh/plugin/_meta.json +5 -0
  354. package/docs/zh/plugin/cli-plugins/_meta.json +1 -1
  355. package/docs/zh/plugin/cli-plugins/api.mdx +19 -70
  356. package/docs/zh/plugin/cli-plugins/life-cycle.mdx +0 -4
  357. package/docs/zh/plugin/introduction.mdx +40 -40
  358. package/docs/zh/plugin/official/_meta.json +0 -5
  359. package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -1
  360. package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  361. package/docs/zh/plugin/official/cli-plugins.mdx +0 -2
  362. package/docs/zh/plugin/plugin-system.mdx +43 -51
  363. package/docs/zh/plugin/runtime-plugins/_meta.json +1 -1
  364. package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
  365. package/docs/zh/plugin/server-plugins/_meta.json +1 -0
  366. package/docs/zh/plugin/server-plugins/api.mdx +210 -1
  367. package/docs/zh/plugin/server-plugins/life-cycle.mdx +41 -1
  368. package/docs/zh/tutorials/_meta.json +0 -10
  369. package/docs/zh/tutorials/examples/csr-auth.mdx +1 -1
  370. package/docs/zh/tutorials/foundations/introduction.mdx +8 -25
  371. package/i18n.json +0 -16
  372. package/package.json +12 -12
  373. package/rspress.config.ts +5 -8
  374. package/src/components/ContentCard/index.module.scss +11 -7
  375. package/src/components/ContentCard/index.tsx +1 -1
  376. package/src/components/FeatureLayout/index.module.css +1 -1
  377. package/src/components/Footer/index.tsx +2 -14
  378. package/src/components/Footer/styles.module.scss +5 -5
  379. package/src/components/FrameworkCode/index.tsx +605 -0
  380. package/src/components/ListCard/index.tsx +1 -1
  381. package/src/components/RandomMemberList/index.tsx +1 -1
  382. package/src/components/RsbuildLink/index.tsx +1 -1
  383. package/src/components/Sandpack/index.tsx +1 -1
  384. package/src/custom.scss +15 -0
  385. package/src/i18n/enUS.ts +2 -4
  386. package/src/i18n/index.ts +1 -1
  387. package/src/i18n/zhCN.ts +2 -4
  388. package/src/index.ts +2 -1
  389. package/src/pages/index.module.scss +59 -41
  390. package/src/pages/index.tsx +9 -24
  391. package/docs/en/apis/app/hooks/server/index_.mdx +0 -10
  392. package/docs/en/apis/app/hooks/src/index_.mdx +0 -38
  393. package/docs/en/apis/app/hooks/src/stories.mdx +0 -16
  394. package/docs/en/apis/app/runtime/app/define-config.mdx +0 -67
  395. package/docs/en/apis/app/runtime/core/bootstrap.mdx +0 -74
  396. package/docs/en/apis/app/runtime/core/create-app.mdx +0 -49
  397. package/docs/en/apis/app/runtime/core/use-loader.mdx +0 -89
  398. package/docs/en/apis/app/runtime/core/use-module-apps.mdx +0 -140
  399. package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  400. package/docs/en/apis/app/runtime/model/Provider.mdx +0 -36
  401. package/docs/en/apis/app/runtime/model/auto-actions.mdx +0 -122
  402. package/docs/en/apis/app/runtime/model/connect.mdx +0 -146
  403. package/docs/en/apis/app/runtime/model/create-app.mdx +0 -75
  404. package/docs/en/apis/app/runtime/model/create-store.mdx +0 -61
  405. package/docs/en/apis/app/runtime/model/handle-effect.mdx +0 -107
  406. package/docs/en/apis/app/runtime/model/model_.mdx +0 -198
  407. package/docs/en/apis/app/runtime/model/use-local-model.mdx +0 -29
  408. package/docs/en/apis/app/runtime/model/use-model.mdx +0 -89
  409. package/docs/en/apis/app/runtime/model/use-static-model.mdx +0 -51
  410. package/docs/en/apis/app/runtime/model/use-store.mdx +0 -26
  411. package/docs/en/apis/app/runtime/ssr/pre-render.mdx +0 -96
  412. package/docs/en/apis/app/runtime/web-server/hook.mdx +0 -134
  413. package/docs/en/apis/app/runtime/web-server/middleware.mdx +0 -113
  414. package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +0 -167
  415. package/docs/en/components/bff-proxy-path-rewrite.mdx +0 -16
  416. package/docs/en/components/bff-proxy-principle.mdx +0 -1
  417. package/docs/en/components/builder.mdx +0 -3
  418. package/docs/en/components/create-bff-api-app.mdx +0 -25
  419. package/docs/en/components/custom-router-micro-frontend.mdx +0 -40
  420. package/docs/en/components/enable-micro-frontend.mdx +0 -30
  421. package/docs/en/components/enableSwc.mdx +0 -17
  422. package/docs/en/components/global-proxy-config.mdx +0 -85
  423. package/docs/en/components/global-proxy.mdx +0 -29
  424. package/docs/en/components/package-manager.mdx +0 -11
  425. package/docs/en/components/reduck-notify.mdx +0 -27
  426. package/docs/en/components/reduck-tip.mdx +0 -8
  427. package/docs/en/configure/app/auto-load-plugin.mdx +0 -66
  428. package/docs/en/configure/app/deploy/microFrontend.mdx +0 -53
  429. package/docs/en/configure/app/dev/port.mdx +0 -25
  430. package/docs/en/configure/app/dev/proxy.mdx +0 -9
  431. package/docs/en/configure/app/experiments/lazy-compilation.mdx +0 -106
  432. package/docs/en/configure/app/html/disable-html-folder.mdx +0 -46
  433. package/docs/en/configure/app/html/favicon-by-entries.mdx +0 -36
  434. package/docs/en/configure/app/html/inject-by-entries.mdx +0 -36
  435. package/docs/en/configure/app/html/meta-by-entries.mdx +0 -48
  436. package/docs/en/configure/app/html/tags-by-entries.mdx +0 -44
  437. package/docs/en/configure/app/html/template-by-entries.mdx +0 -33
  438. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +0 -35
  439. package/docs/en/configure/app/html/title-by-entries.mdx +0 -37
  440. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +0 -21
  441. package/docs/en/configure/app/output/disable-css-extract.mdx +0 -16
  442. package/docs/en/configure/app/output/disable-filename-hash.mdx +0 -16
  443. package/docs/en/configure/app/output/disable-minimize.mdx +0 -14
  444. package/docs/en/configure/app/output/disable-node-polyfill.mdx +0 -22
  445. package/docs/en/configure/app/output/disable-source-map.mdx +0 -31
  446. package/docs/en/configure/app/output/enable-asset-fallback.mdx +0 -36
  447. package/docs/en/configure/app/output/enable-inline-scripts.mdx +0 -22
  448. package/docs/en/configure/app/output/enable-inline-styles.mdx +0 -22
  449. package/docs/en/configure/app/output/enable-latest-decorators.mdx +0 -14
  450. package/docs/en/configure/app/performance/bundle-analyze.mdx +0 -24
  451. package/docs/en/configure/app/performance/transform-lodash.mdx +0 -52
  452. package/docs/en/configure/app/runtime/master-app.mdx +0 -36
  453. package/docs/en/configure/app/runtime/state.mdx +0 -52
  454. package/docs/en/configure/app/source/disable-entry-dirs.mdx +0 -38
  455. package/docs/en/configure/app/source/enable-custom-entry.mdx +0 -68
  456. package/docs/en/configure/app/source/module-scopes.mdx +0 -72
  457. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +0 -55
  458. package/docs/en/configure/app/source/resolve-main-fields.mdx +0 -46
  459. package/docs/en/configure/app/tools/babel.mdx +0 -225
  460. package/docs/en/configure/app/tools/esbuild.mdx +0 -44
  461. package/docs/en/configure/app/tools/pug.mdx +0 -54
  462. package/docs/en/configure/app/tools/styled-components.mdx +0 -55
  463. package/docs/en/configure/app/tools/tailwindcss.mdx +0 -98
  464. package/docs/en/configure/app/tools/terser.mdx +0 -58
  465. package/docs/en/configure/app/tools/ts-loader.mdx +0 -76
  466. package/docs/en/configure/app/tools/webpack-chain.mdx +0 -253
  467. package/docs/en/configure/app/tools/webpack.mdx +0 -309
  468. package/docs/en/guides/deprecated.md +0 -17
  469. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -27
  470. package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -290
  471. package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -298
  472. package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  473. package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
  474. package/docs/en/guides/topic-detail/model/_meta.json +0 -14
  475. package/docs/en/guides/topic-detail/model/auto-actions.mdx +0 -85
  476. package/docs/en/guides/topic-detail/model/computed-state.mdx +0 -148
  477. package/docs/en/guides/topic-detail/model/define-model.mdx +0 -62
  478. package/docs/en/guides/topic-detail/model/faq.mdx +0 -35
  479. package/docs/en/guides/topic-detail/model/manage-effects.mdx +0 -247
  480. package/docs/en/guides/topic-detail/model/model-communicate.mdx +0 -217
  481. package/docs/en/guides/topic-detail/model/performance.mdx +0 -167
  482. package/docs/en/guides/topic-detail/model/quick-start.mdx +0 -117
  483. package/docs/en/guides/topic-detail/model/redux-integration.mdx +0 -20
  484. package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +0 -68
  485. package/docs/en/guides/topic-detail/model/use-model.mdx +0 -243
  486. package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  487. package/docs/en/plugin/cli-plugins/migration.mdx +0 -98
  488. package/docs/en/plugin/official/cli-plugins/plugin-swc.mdx +0 -363
  489. package/docs/en/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  490. package/docs/en/plugin/official/rsbuild-plugins/_meta.json +0 -1
  491. package/docs/en/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -205
  492. package/docs/en/plugin/official/rsbuild-plugins.mdx +0 -3
  493. package/docs/en/plugin/runtime-plugins/migration.mdx +0 -101
  494. package/docs/en/tutorials/first-app/c01-start.mdx +0 -99
  495. package/docs/en/tutorials/first-app/c02-component.mdx +0 -60
  496. package/docs/en/tutorials/first-app/c03-css.mdx +0 -324
  497. package/docs/en/tutorials/first-app/c04-routes.mdx +0 -172
  498. package/docs/en/tutorials/first-app/c05-loader.mdx +0 -87
  499. package/docs/en/tutorials/first-app/c06-model.mdx +0 -278
  500. package/docs/en/tutorials/first-app/c07-container.mdx +0 -281
  501. package/docs/en/tutorials/first-app/c08-entries.mdx +0 -135
  502. package/docs/zh/apis/app/hooks/server/index_.mdx +0 -10
  503. package/docs/zh/apis/app/hooks/src/index_.mdx +0 -39
  504. package/docs/zh/apis/app/hooks/src/stories.mdx +0 -16
  505. package/docs/zh/apis/app/runtime/app/define-config.mdx +0 -67
  506. package/docs/zh/apis/app/runtime/core/bootstrap.mdx +0 -74
  507. package/docs/zh/apis/app/runtime/core/create-app.mdx +0 -35
  508. package/docs/zh/apis/app/runtime/core/use-loader.mdx +0 -89
  509. package/docs/zh/apis/app/runtime/core/use-module-apps.mdx +0 -179
  510. package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  511. package/docs/zh/apis/app/runtime/model/Provider.mdx +0 -36
  512. package/docs/zh/apis/app/runtime/model/auto-actions.mdx +0 -122
  513. package/docs/zh/apis/app/runtime/model/connect.mdx +0 -143
  514. package/docs/zh/apis/app/runtime/model/create-app.mdx +0 -75
  515. package/docs/zh/apis/app/runtime/model/create-store.mdx +0 -61
  516. package/docs/zh/apis/app/runtime/model/handle-effect.mdx +0 -108
  517. package/docs/zh/apis/app/runtime/model/model_.mdx +0 -201
  518. package/docs/zh/apis/app/runtime/model/use-local-model.mdx +0 -29
  519. package/docs/zh/apis/app/runtime/model/use-model.mdx +0 -89
  520. package/docs/zh/apis/app/runtime/model/use-static-model.mdx +0 -49
  521. package/docs/zh/apis/app/runtime/model/use-store.mdx +0 -26
  522. package/docs/zh/apis/app/runtime/ssr/pre-render.mdx +0 -96
  523. package/docs/zh/apis/app/runtime/web-server/hook.mdx +0 -136
  524. package/docs/zh/apis/app/runtime/web-server/middleware.mdx +0 -114
  525. package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +0 -165
  526. package/docs/zh/components/bff-proxy-path-rewrite.mdx +0 -16
  527. package/docs/zh/components/bff-proxy-principle.mdx +0 -1
  528. package/docs/zh/components/builder.mdx +0 -3
  529. package/docs/zh/components/create-bff-api-app.mdx +0 -25
  530. package/docs/zh/components/custom-router-micro-frontend.mdx +0 -40
  531. package/docs/zh/components/default-mwa-generate.mdx +0 -4
  532. package/docs/zh/components/enable-micro-frontend.mdx +0 -30
  533. package/docs/zh/components/enableSwc.mdx +0 -17
  534. package/docs/zh/components/global-proxy-config.mdx +0 -85
  535. package/docs/zh/components/global-proxy.mdx +0 -29
  536. package/docs/zh/components/package-manager.mdx +0 -11
  537. package/docs/zh/components/reduck-notify.mdx +0 -27
  538. package/docs/zh/components/reduck-tip.mdx +0 -8
  539. package/docs/zh/configure/app/auto-load-plugin.mdx +0 -66
  540. package/docs/zh/configure/app/deploy/microFrontend.mdx +0 -55
  541. package/docs/zh/configure/app/dev/port.mdx +0 -25
  542. package/docs/zh/configure/app/dev/proxy.mdx +0 -9
  543. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +0 -105
  544. package/docs/zh/configure/app/html/disable-html-folder.mdx +0 -45
  545. package/docs/zh/configure/app/html/favicon-by-entries.mdx +0 -37
  546. package/docs/zh/configure/app/html/inject-by-entries.mdx +0 -37
  547. package/docs/zh/configure/app/html/meta-by-entries.mdx +0 -48
  548. package/docs/zh/configure/app/html/tags-by-entries.mdx +0 -44
  549. package/docs/zh/configure/app/html/template-by-entries.mdx +0 -33
  550. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +0 -36
  551. package/docs/zh/configure/app/html/title-by-entries.mdx +0 -37
  552. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +0 -21
  553. package/docs/zh/configure/app/output/disable-css-extract.mdx +0 -16
  554. package/docs/zh/configure/app/output/disable-filename-hash.mdx +0 -16
  555. package/docs/zh/configure/app/output/disable-minimize.mdx +0 -14
  556. package/docs/zh/configure/app/output/disable-node-polyfill.mdx +0 -22
  557. package/docs/zh/configure/app/output/disable-source-map.mdx +0 -31
  558. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +0 -36
  559. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +0 -22
  560. package/docs/zh/configure/app/output/enable-inline-styles.mdx +0 -22
  561. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +0 -14
  562. package/docs/zh/configure/app/performance/bundle-analyze.mdx +0 -24
  563. package/docs/zh/configure/app/performance/transform-lodash.mdx +0 -52
  564. package/docs/zh/configure/app/runtime/master-app.mdx +0 -38
  565. package/docs/zh/configure/app/runtime/state.mdx +0 -52
  566. package/docs/zh/configure/app/source/disable-entry-dirs.mdx +0 -38
  567. package/docs/zh/configure/app/source/enable-custom-entry.mdx +0 -67
  568. package/docs/zh/configure/app/source/module-scopes.mdx +0 -72
  569. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +0 -57
  570. package/docs/zh/configure/app/source/resolve-main-fields.mdx +0 -46
  571. package/docs/zh/configure/app/tools/babel.mdx +0 -224
  572. package/docs/zh/configure/app/tools/esbuild.mdx +0 -44
  573. package/docs/zh/configure/app/tools/pug.mdx +0 -54
  574. package/docs/zh/configure/app/tools/styled-components.mdx +0 -54
  575. package/docs/zh/configure/app/tools/tailwindcss.mdx +0 -98
  576. package/docs/zh/configure/app/tools/terser.mdx +0 -58
  577. package/docs/zh/configure/app/tools/ts-loader.mdx +0 -76
  578. package/docs/zh/configure/app/tools/webpack-chain.mdx +0 -257
  579. package/docs/zh/configure/app/tools/webpack.mdx +0 -309
  580. package/docs/zh/guides/advanced-features/rspack-start.mdx +0 -154
  581. package/docs/zh/guides/deprecated.md +0 -19
  582. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -26
  583. package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +0 -332
  584. package/docs/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -296
  585. package/docs/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  586. package/docs/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -27
  587. package/docs/zh/guides/topic-detail/model/_meta.json +0 -14
  588. package/docs/zh/guides/topic-detail/model/auto-actions.mdx +0 -88
  589. package/docs/zh/guides/topic-detail/model/computed-state.mdx +0 -147
  590. package/docs/zh/guides/topic-detail/model/define-model.mdx +0 -63
  591. package/docs/zh/guides/topic-detail/model/faq.mdx +0 -36
  592. package/docs/zh/guides/topic-detail/model/manage-effects.mdx +0 -256
  593. package/docs/zh/guides/topic-detail/model/model-communicate.mdx +0 -217
  594. package/docs/zh/guides/topic-detail/model/performance.mdx +0 -167
  595. package/docs/zh/guides/topic-detail/model/quick-start.mdx +0 -117
  596. package/docs/zh/guides/topic-detail/model/redux-integration.mdx +0 -20
  597. package/docs/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -67
  598. package/docs/zh/guides/topic-detail/model/use-model.mdx +0 -248
  599. package/docs/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  600. package/docs/zh/plugin/cli-plugins/migration.mdx +0 -98
  601. package/docs/zh/plugin/official/cli-plugins/plugin-swc.mdx +0 -351
  602. package/docs/zh/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  603. package/docs/zh/plugin/official/rsbuild-plugins/_meta.json +0 -1
  604. package/docs/zh/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -201
  605. package/docs/zh/plugin/official/rsbuild-plugins.mdx +0 -3
  606. package/docs/zh/plugin/runtime-plugins/migration.mdx +0 -101
  607. package/docs/zh/tutorials/first-app/c01-start.mdx +0 -99
  608. package/docs/zh/tutorials/first-app/c02-component.mdx +0 -60
  609. package/docs/zh/tutorials/first-app/c03-css.mdx +0 -323
  610. package/docs/zh/tutorials/first-app/c04-routes.mdx +0 -172
  611. package/docs/zh/tutorials/first-app/c05-loader.mdx +0 -89
  612. package/docs/zh/tutorials/first-app/c06-model.mdx +0 -274
  613. package/docs/zh/tutorials/first-app/c07-container.mdx +0 -281
  614. package/docs/zh/tutorials/first-app/c08-entries.mdx +0 -135
  615. /package/docs/en/components/{reduck-migration.mdx → auto-upgrade.mdx} +0 -0
  616. /package/docs/en/components/{router-legacy-tip.mdx → international/platform-support.mdx} +0 -0
  617. /package/docs/{zh/components/reduck-migration.mdx → en/components/new-entry-tooltip.mdx} +0 -0
  618. /package/docs/{zh/components/router-legacy-tip.mdx → en/components/upgrade-browserslist.mdx} +0 -0
@@ -0,0 +1,428 @@
1
+ ---
2
+ title: Configuration
3
+ ---
4
+
5
+ # Configuration
6
+
7
+ Plugin configuration is divided into two parts: CLI configuration (`modern.config.ts`) and runtime configuration (`modern.runtime.ts`). Both need to be used together - CLI configuration is for basic plugin settings, while runtime configuration is for i18next initialization options.
8
+
9
+ :::warning
10
+ Function-type configurations (such as SDK loader functions) can only be set in runtime configuration (`modern.runtime.ts`), not in CLI configuration. This is because CLI configuration is executed at build time and cannot serialize functions.
11
+ :::
12
+
13
+ ## CLI Configuration (modern.config.ts)
14
+
15
+ Configure plugin options in `modern.config.ts`:
16
+
17
+ ```ts
18
+ import { i18nPlugin } from '@modern-js/plugin-i18n';
19
+
20
+ export default defineConfig({
21
+ plugins: [
22
+ i18nPlugin({
23
+ localeDetection: {
24
+ // Language detection configuration
25
+ },
26
+ backend: {
27
+ // Backend resource loading configuration
28
+ },
29
+ }),
30
+ ],
31
+ });
32
+ ```
33
+
34
+ ### localeDetection Configuration
35
+
36
+ `localeDetection` is used to configure language detection related options:
37
+
38
+ :::warning
39
+ If `localePathRedirect` is enabled, the `detection` configuration must be placed in CLI configuration (`modern.config.ts`), because the server-side plugin needs to read this configuration to get language information and perform path redirection.
40
+ :::
41
+
42
+ ```ts
43
+ interface BaseLocaleDetectionOptions {
44
+ /** Whether to enable path redirection, adds language prefix to URL when enabled */
45
+ localePathRedirect?: boolean;
46
+
47
+ /** Whether to enable i18next language detector */
48
+ i18nextDetector?: boolean;
49
+
50
+ /** Supported language list */
51
+ languages?: string[];
52
+
53
+ /** Default fallback language */
54
+ fallbackLanguage?: string;
55
+
56
+ /** Custom detection configuration */
57
+ detection?: LanguageDetectorOptions;
58
+
59
+ /** Routes to ignore automatic redirection (array of path patterns or function)
60
+ *
61
+ * Can be a string array (path patterns) or a function to determine if redirection should be ignored.
62
+ * Supports exact match and prefix match (e.g., '/api' will match '/api' and '/api/users').
63
+ *
64
+ * @example
65
+ * // String array
66
+ * ignoreRedirectRoutes: ['/api', '/admin']
67
+ *
68
+ * // Function
69
+ * ignoreRedirectRoutes: (pathname) => pathname.startsWith('/api')
70
+ */
71
+ ignoreRedirectRoutes?: string[] | ((pathname: string) => boolean);
72
+ }
73
+
74
+ interface LocaleDetectionOptions extends BaseLocaleDetectionOptions {
75
+ /** Configure language detection by entry (multi-entry scenarios) */
76
+ localeDetectionByEntry?: Record<string, BaseLocaleDetectionOptions>;
77
+ }
78
+ ```
79
+
80
+ **Example**:
81
+
82
+ ```ts
83
+ i18nPlugin({
84
+ localeDetection: {
85
+ localePathRedirect: true,
86
+ i18nextDetector: true,
87
+ languages: ['zh', 'en', 'ja'],
88
+ fallbackLanguage: 'en',
89
+ detection: {
90
+ order: ['path', 'cookie', 'header'],
91
+ lookupCookie: 'i18next',
92
+ caches: ['cookie'],
93
+ },
94
+ },
95
+ });
96
+ ```
97
+
98
+ ### backend Configuration
99
+
100
+ `backend` is used to configure resource loading methods:
101
+
102
+ :::info
103
+ **Auto-detection**: The plugin automatically detects and enables backend in the following scenarios:
104
+
105
+ 1. **If you configure `loadPath` or `addPath`**: The backend will be automatically enabled (`enabled: true`) without checking for locales directory, since you've already specified the resource path.
106
+
107
+ 2. **If you don't configure backend**: The plugin will automatically detect if a `locales` directory exists in:
108
+
109
+ - Project root: `{projectRoot}/locales`
110
+ - Config public directory: `{projectRoot}/config/public/locales`
111
+ - Public directory configured via `server.publicDir`: `{projectRoot}/{publicDir}/locales`
112
+
113
+ If the directory exists and contains JSON files, the backend will be automatically enabled.
114
+
115
+ 3. **If you explicitly set `enabled: false`**: No auto-detection will be performed, and the backend will remain disabled.
116
+
117
+ This automatic detection helps reduce unnecessary backend registration when locales directory doesn't exist, improving performance.
118
+ :::
119
+
120
+ ```ts
121
+ interface BaseBackendOptions {
122
+ /** Whether to enable backend resource loading */
123
+ enabled?: boolean;
124
+
125
+ /** Resource file loading path (HTTP backend) */
126
+ loadPath?: string;
127
+
128
+ /** Missing translation save path (optional) */
129
+ addPath?: string;
130
+
131
+ /** Cache hit mode for chained backend (only effective when both `loadPath` and `sdk` are provided)
132
+ *
133
+ * - `'none'` (default, only when chained backend is not configured): If the first backend returns resources, stop and don't try the next backend
134
+ * - `'refresh'`: Try to refresh the cache by loading from the next backend and update the cache
135
+ * - `'refreshAndUpdateStore'` (default for chained backend): Try to refresh the cache by loading from the next backend,
136
+ * update the cache and also update the i18next resource store. This allows FS/HTTP resources to be displayed first,
137
+ * then SDK resources will update them asynchronously.
138
+ *
139
+ * @default 'refreshAndUpdateStore' when both loadPath and sdk are provided
140
+ */
141
+ cacheHitMode?: 'none' | 'refresh' | 'refreshAndUpdateStore';
142
+
143
+ /** SDK loader function (custom backend)
144
+ *
145
+ * Note: In CLI configuration, can only be set to `true` or a string identifier to enable SDK mode.
146
+ * The actual SDK function must be provided through `initOptions.backend.sdk` in runtime configuration (`modern.runtime.ts`).
147
+ *
148
+ * When both `loadPath` (or FS backend) and `sdk` are provided, the plugin will automatically use `i18next-chained-backend`
149
+ * to chain multiple backends. The loading order will be:
150
+ * 1. HTTP/FS backend (primary) - loads from `loadPath` or file system first for quick initial display
151
+ * 2. SDK backend (update) - loads from the SDK function to update/refresh translations
152
+ *
153
+ * With `cacheHitMode: 'refreshAndUpdateStore'` (default), FS/HTTP resources will be displayed immediately,
154
+ * then SDK resources will be loaded asynchronously to update the translations.
155
+ */
156
+ sdk?: I18nSdkLoader | boolean | string;
157
+ }
158
+
159
+ interface BackendOptions extends BaseBackendOptions {
160
+ /** Configure backend by entry (multi-entry scenarios) */
161
+ backendOptionsByEntry?: Record<string, BaseBackendOptions>;
162
+ }
163
+ ```
164
+
165
+ **Examples**:
166
+
167
+ **1. HTTP/FS backend only**:
168
+
169
+ You can explicitly enable backend:
170
+
171
+ ```ts
172
+ i18nPlugin({
173
+ backend: {
174
+ enabled: true,
175
+ loadPath: '/locales/{{lng}}/{{ns}}.json',
176
+ },
177
+ });
178
+ ```
179
+
180
+ Or simply configure `loadPath` or `addPath`, and backend will be automatically enabled:
181
+
182
+ ```ts
183
+ i18nPlugin({
184
+ backend: {
185
+ // enabled will be automatically set to true
186
+ loadPath: '/locales/{{lng}}/{{ns}}.json',
187
+ },
188
+ });
189
+ ```
190
+
191
+ **Auto-detection without configuration**:
192
+
193
+ If you don't configure backend at all, the plugin will automatically detect locales directory:
194
+
195
+ ```ts
196
+ i18nPlugin({
197
+ // No backend config - plugin will auto-detect locales directory
198
+ localeDetection: {
199
+ languages: ['zh', 'en'],
200
+ fallbackLanguage: 'en',
201
+ },
202
+ });
203
+ ```
204
+
205
+ If `locales` directory exists with JSON files, backend will be automatically enabled with default `loadPath: '/locales/{{lng}}/{{ns}}.json'`.
206
+
207
+ **2. Chained backend (recommended)**: Use both HTTP/FS backend and SDK backend
208
+
209
+ When `backend.enabled = true` and `sdk` is configured, if `loadPath` is not explicitly configured, the default `loadPath` will be used automatically and chained backend will be enabled:
210
+
211
+ ```ts
212
+ i18nPlugin({
213
+ backend: {
214
+ enabled: true,
215
+ // When loadPath is not configured, default '/locales/{{lng}}/{{ns}}.json' will be used
216
+ sdk: true, // SDK backend
217
+ // cacheHitMode: 'refreshAndUpdateStore', // Default value, can be omitted
218
+ },
219
+ });
220
+ ```
221
+
222
+ You can also explicitly configure `loadPath`:
223
+
224
+ ```ts
225
+ i18nPlugin({
226
+ backend: {
227
+ enabled: true,
228
+ loadPath: '/locales/{{lng}}/{{ns}}.json', // HTTP/FS backend
229
+ sdk: true, // SDK backend
230
+ },
231
+ });
232
+ ```
233
+
234
+ Provide the SDK function in `modern.runtime.ts`:
235
+
236
+ ```ts
237
+ export default defineRuntimeConfig({
238
+ i18n: {
239
+ initOptions: {
240
+ backend: {
241
+ sdk: async options => {
242
+ // SDK implementation
243
+ if (options.lng && options.ns) {
244
+ return await mySdk.getResource(options.lng, options.ns);
245
+ }
246
+ },
247
+ },
248
+ },
249
+ },
250
+ });
251
+ ```
252
+
253
+ When using chained backend, the system will:
254
+
255
+ 1. First load resources from `/locales/{{lng}}/{{ns}}.json` and display immediately (quick initial display of basic translations)
256
+ 2. Then asynchronously load resources from SDK and update the i18next store (update/supplement translations)
257
+
258
+ This ensures users see page content quickly while the latest translation resources are loaded in the background.
259
+
260
+ **3. SDK backend only**:
261
+
262
+ If you need to disable HTTP/FS backend and use only SDK backend, you can explicitly set `loadPath: ''`:
263
+
264
+ ```ts
265
+ i18nPlugin({
266
+ backend: {
267
+ enabled: true,
268
+ loadPath: '', // Explicitly disable HTTP/FS backend
269
+ sdk: true, // Use SDK backend only
270
+ },
271
+ });
272
+ ```
273
+
274
+ :::warning
275
+ When using SDK backend only, you must provide the actual SDK function in `modern.runtime.ts`, otherwise it will fallback to HTTP/FS backend.
276
+ :::
277
+
278
+ ### Multi-Entry Configuration
279
+
280
+ If the project has multiple entries, you can configure each entry separately:
281
+
282
+ ```ts
283
+ i18nPlugin({
284
+ localeDetection: {
285
+ localePathRedirect: true,
286
+ languages: ['zh', 'en'],
287
+ fallbackLanguage: 'en',
288
+ // Override configuration for specific entry
289
+ localeDetectionByEntry: {
290
+ admin: {
291
+ localePathRedirect: false, // admin entry does not use path redirection
292
+ },
293
+ },
294
+ },
295
+ backend: {
296
+ enabled: true,
297
+ // Override configuration for specific entry
298
+ backendOptionsByEntry: {
299
+ admin: {
300
+ loadPath: '/admin/locales/{{lng}}/{{ns}}.json',
301
+ },
302
+ },
303
+ },
304
+ });
305
+ ```
306
+
307
+ ## Runtime Configuration (modern.runtime.ts)
308
+
309
+ You can configure runtime options in `src/modern.runtime.ts`:
310
+
311
+ ```ts
312
+ import { defineRuntimeConfig } from '@modern-js/runtime';
313
+ import i18next from 'i18next';
314
+
315
+ // It's recommended to create a new i18next instance to avoid using the global default instance
316
+ const i18nInstance = i18next.createInstance();
317
+
318
+ export default defineRuntimeConfig({
319
+ i18n: {
320
+ // Use custom i18next instance (optional)
321
+ i18nInstance: i18nInstance,
322
+
323
+ // i18next initialization options
324
+ initOptions: {
325
+ fallbackLng: 'en',
326
+ supportedLngs: ['zh', 'en'],
327
+ // Other i18next configuration options
328
+ },
329
+ },
330
+ });
331
+ ```
332
+
333
+ ### i18nInstance Configuration
334
+
335
+ If you need to use a custom i18n instance, you can provide it in runtime configuration:
336
+
337
+ import CustomInstanceCode from '@site-docs/components/international/custom-instance-code';
338
+
339
+ <CustomInstanceCode />
340
+
341
+ ### initOptions Configuration
342
+
343
+ import InitOptionsDesc from '@site-docs/components/international/init-options-desc';
344
+
345
+ <InitOptionsDesc />
346
+
347
+ :::info
348
+ If `localePathRedirect` is enabled, the `detection` configuration should be set in CLI configuration, not in `initOptions`. This is because the server-side plugin needs to read the `detection` option from CLI configuration to perform language detection and path redirection.
349
+ :::
350
+
351
+ ```ts
352
+ export default defineRuntimeConfig({
353
+ i18n: {
354
+ initOptions: {
355
+ // Language related
356
+ lng: 'en',
357
+ fallbackLng: 'en',
358
+ supportedLngs: ['zh', 'en'],
359
+
360
+ // Namespace related
361
+ ns: ['translation', 'common'],
362
+ defaultNS: 'translation',
363
+
364
+ // React related
365
+ react: {
366
+ useSuspense: false,
367
+ },
368
+
369
+ // Other i18next options
370
+ interpolation: {
371
+ escapeValue: false,
372
+ },
373
+ },
374
+ },
375
+ });
376
+ ```
377
+
378
+ ### SDK Backend Configuration
379
+
380
+ If using SDK backend, you need to provide the actual SDK function in runtime configuration:
381
+
382
+ :::info
383
+ Function-type configurations can only be set in runtime configuration. In CLI configuration, `sdk` can only be set to `true` or a string identifier to enable SDK mode. The actual function implementation must be provided in `modern.runtime.ts`.
384
+ :::
385
+
386
+ **Enable SDK mode in `modern.config.ts`**:
387
+
388
+ ```ts
389
+ i18nPlugin({
390
+ backend: {
391
+ enabled: true,
392
+ sdk: true, // Enable SDK mode
393
+ },
394
+ });
395
+ ```
396
+
397
+ **Provide SDK function in `modern.runtime.ts`**:
398
+
399
+ ```ts
400
+ import { defineRuntimeConfig } from '@modern-js/runtime';
401
+ import type { I18nSdkLoader } from '@modern-js/plugin-i18n/runtime';
402
+
403
+ const mySdkLoader: I18nSdkLoader = async options => {
404
+ if (options.all) {
405
+ // Load all resources
406
+ return await fetchAllResources();
407
+ }
408
+
409
+ if (options.lng && options.ns) {
410
+ // Load single resource
411
+ const response = await fetch(`/api/i18n/${options.lng}/${options.ns}`);
412
+ return response.json();
413
+ }
414
+
415
+ // Handle other cases
416
+ return {};
417
+ };
418
+
419
+ export default defineRuntimeConfig({
420
+ i18n: {
421
+ initOptions: {
422
+ backend: {
423
+ sdk: mySdkLoader,
424
+ },
425
+ },
426
+ },
427
+ });
428
+ ```
@@ -0,0 +1,276 @@
1
+ ---
2
+ title: Locale Detection
3
+ ---
4
+
5
+ # Locale Detection
6
+
7
+ The plugin supports multiple language detection methods, which can be combined to meet different business requirements.
8
+
9
+ ## Detection Methods
10
+
11
+ ### 1. URL Path Detection (localePathRedirect)
12
+
13
+ When `localePathRedirect` is set to `true`, the plugin will detect the language from the URL path.
14
+
15
+ **Examples**:
16
+
17
+ - `/zh/about` → Detected language: `zh`
18
+ - `/en/about` → Detected language: `en`
19
+ - `/about` → If there's no language prefix, will redirect to the default language path
20
+
21
+ **Configuration**:
22
+
23
+ ```ts
24
+ i18nPlugin({
25
+ localeDetection: {
26
+ localePathRedirect: true,
27
+ languages: ['zh', 'en'],
28
+ fallbackLanguage: 'en',
29
+ },
30
+ });
31
+ ```
32
+
33
+ **Route Configuration** (Convention-based Routing):
34
+
35
+ When using convention-based routing, you need to create a `[lang]` directory under the `routes/` directory to represent the language parameter:
36
+
37
+ ```bash
38
+ routes/
39
+ ├── [lang]/
40
+ │ ├── layout.tsx # Layout component
41
+ │ ├── page.tsx # Home page
42
+ │ └── about/
43
+ │ └── page.tsx # About page
44
+ ```
45
+
46
+ **routes/[lang]/layout.tsx**:
47
+
48
+ ```tsx
49
+ import { Outlet } from '@modern-js/runtime/router';
50
+
51
+ export default function Layout() {
52
+ return <Outlet />;
53
+ }
54
+ ```
55
+
56
+ **routes/[lang]/page.tsx**:
57
+
58
+ ```tsx
59
+ export default function Home() {
60
+ return <div>Home</div>;
61
+ }
62
+ ```
63
+
64
+ **routes/[lang]/about/page.tsx**:
65
+
66
+ ```tsx
67
+ export default function About() {
68
+ return <div>About</div>;
69
+ }
70
+ ```
71
+
72
+ :::info
73
+ If using custom routing (`modern.routes.ts`), you need to add `:lang` dynamic parameter in the route configuration. Convention-based routing will automatically generate corresponding routes based on the file structure.
74
+ :::
75
+
76
+ ### 2. i18next Language Detector
77
+
78
+ When `i18nextDetector` is set to `true`, the i18next language detector will be enabled, supporting language detection from the following locations:
79
+
80
+ - **Cookie**: Read language settings from cookies
81
+ - **LocalStorage**: Read from browser LocalStorage
82
+ - **Query Parameters**: Read from URL query parameters (e.g., `?lng=en`)
83
+ - **Request Headers**: Read from HTTP request headers (e.g., `Accept-Language`)
84
+ - **HTML Tag**: Read from the `lang` attribute of HTML tags
85
+ - **Subdomain**: Read from subdomain (e.g., `en.example.com`)
86
+
87
+ **Configuration**:
88
+
89
+ ```ts
90
+ i18nPlugin({
91
+ localeDetection: {
92
+ i18nextDetector: true,
93
+ detection: {
94
+ order: ['cookie', 'querystring', 'header'],
95
+ lookupCookie: 'i18next',
96
+ lookupQuerystring: 'lng',
97
+ lookupHeader: 'accept-language',
98
+ caches: ['cookie'],
99
+ },
100
+ },
101
+ });
102
+ ```
103
+
104
+ ### 3. Custom Detection Configuration
105
+
106
+ You can customize detection behavior through the `detection` option:
107
+
108
+ ```ts
109
+ i18nPlugin({
110
+ localeDetection: {
111
+ i18nextDetector: true,
112
+ detection: {
113
+ // Detection order
114
+ order: ['path', 'cookie', 'querystring', 'header'],
115
+
116
+ // Cookie related
117
+ lookupCookie: 'i18next',
118
+ cookieExpirationDate: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // Expires in 1 year
119
+ cookieDomain: '.example.com',
120
+
121
+ // Query parameter related
122
+ lookupQuerystring: 'lng',
123
+
124
+ // Request header related
125
+ lookupHeader: 'accept-language',
126
+
127
+ // Cache configuration
128
+ caches: ['cookie', 'localStorage'],
129
+ },
130
+ },
131
+ });
132
+ ```
133
+
134
+ ## Detection Priority
135
+
136
+ The plugin's language detection follows the following priority order (from highest to lowest):
137
+
138
+ 1. **SSR Data** (highest priority): Read language from `window._SSR_DATA` set during server-side rendering, applicable to both SSR and CSR projects
139
+ 2. **Path Detection**: If `localePathRedirect` is `true`, detect language prefix from URL path
140
+ 3. **i18next Detector**: Execute detection according to the order configured in `detection.order` (Cookie, LocalStorage, query parameters, request headers, etc.)
141
+ 4. **User Configured Language**: Use the language configured in `initOptions.lng`
142
+ 5. **Fallback Language**: Use `fallbackLanguage` as the final fallback
143
+
144
+ :::info
145
+ SSR data detection has the highest priority to ensure the client uses the language detected during server-side rendering, avoiding language flickering issues caused by client-side re-detection.
146
+ :::
147
+
148
+ **Example**:
149
+
150
+ ```ts
151
+ // Configured detection order (only affects priority within i18next detector)
152
+ detection: {
153
+ order: ['path', 'cookie', 'querystring', 'header'],
154
+ }
155
+
156
+ // Actual detection flow:
157
+ // 1. First check SSR data (window._SSR_DATA)
158
+ // 2. Then check URL path (if localePathRedirect is enabled)
159
+ // 3. Then check i18next detector according to order:
160
+ // - Cookie
161
+ // - Query parameters
162
+ // - Request headers
163
+ // 4. Then use initOptions.lng (if configured)
164
+ // 5. Finally use fallbackLanguage
165
+ ```
166
+
167
+ ## Detection Options
168
+
169
+ ### order (Detection Order)
170
+
171
+ Specifies the order of language detection, optional values:
172
+
173
+ - `path`: Detect from URL path
174
+ - `querystring`: Detect from query parameters
175
+ - `cookie`: Detect from cookies
176
+ - `localStorage`: Detect from LocalStorage
177
+ - `sessionStorage`: Detect from SessionStorage
178
+ - `navigator`: Detect from browser language settings
179
+ - `htmlTag`: Detect from HTML tags
180
+ - `header`: Detect from HTTP request headers
181
+ - `subdomain`: Detect from subdomain
182
+
183
+ :::warning
184
+ `path` detection requires `localePathRedirect` to be `true`. `localStorage`, `sessionStorage`, `navigator`, and `htmlTag` are only available in browser environments.
185
+ :::
186
+
187
+ ### caches (Cache Method)
188
+
189
+ Specifies where the detected language should be cached, optional values:
190
+
191
+ - `false`: No caching
192
+ - `['cookie']`: Cache to Cookie
193
+ - `['localStorage']`: Cache to LocalStorage (browser only)
194
+ - `['cookie', 'localStorage']`: Cache to both Cookie and LocalStorage
195
+
196
+ ### lookupQuerystring, lookupCookie, lookupLocalStorage, lookupSession, lookupHeader
197
+
198
+ Specifies the key name used when reading language from query parameters, cookies, LocalStorage, SessionStorage, or request headers:
199
+
200
+ - `lookupQuerystring`: Default `'lng'`, e.g., `?lng=en`
201
+ - `lookupCookie`: Default `'i18next'`
202
+ - `lookupLocalStorage`: Default `'i18nextLng'` (browser only)
203
+ - `lookupSession`: SessionStorage key name (browser only)
204
+ - `lookupHeader`: Default `'accept-language'`
205
+
206
+ ### lookupFromPathIndex
207
+
208
+ Specifies which position in the URL path to start detecting language (when `'path'` is included in `order`):
209
+
210
+ - `lookupFromPathIndex`: Path segment index, defaults to `0` (first path segment)
211
+
212
+ **Example**:
213
+
214
+ ```ts
215
+ // URL: /api/v1/en/users
216
+ // If lookupFromPathIndex = 2, detection starts from the third path segment ('en')
217
+ detection: {
218
+ order: ['path'],
219
+ lookupFromPathIndex: 2,
220
+ }
221
+ ```
222
+
223
+ ### cookieMinutes, cookieExpirationDate
224
+
225
+ Controls Cookie expiration time:
226
+
227
+ - `cookieMinutes`: Cookie expiration time (minutes), default `525600` (1 year)
228
+ - `cookieExpirationDate`: Cookie expiration date (Date object), takes precedence over `cookieMinutes`
229
+
230
+ **Example**:
231
+
232
+ ```ts
233
+ detection: {
234
+ cookieMinutes: 60 * 24 * 7, // Expires in 7 days
235
+ // or
236
+ cookieExpirationDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), // Expires in 7 days
237
+ }
238
+ ```
239
+
240
+ ### ignoreRedirectRoutes
241
+
242
+ Specifies which routes should ignore automatic language redirection. This is very useful for API routes, static resources, and other paths that don't need language prefixes.
243
+
244
+ **Configuration**:
245
+
246
+ ```ts
247
+ i18nPlugin({
248
+ localeDetection: {
249
+ localePathRedirect: true,
250
+ languages: ['zh', 'en'],
251
+ fallbackLanguage: 'en',
252
+ // String array: supports exact match and prefix match
253
+ ignoreRedirectRoutes: ['/api', '/admin', '/static'],
254
+ // Or use function for more flexible judgment
255
+ ignoreRedirectRoutes: pathname => {
256
+ return pathname.startsWith('/api') || pathname.startsWith('/admin');
257
+ },
258
+ },
259
+ });
260
+ ```
261
+
262
+ **Matching Rules**:
263
+
264
+ - String array: Supports exact match (`'/api'`) and prefix match (`'/api'` will match `/api` and `/api/users`)
265
+ - Function: Receives pathname (with language prefix removed), returns `true` to indicate ignoring redirection
266
+
267
+ **Example**:
268
+
269
+ ```ts
270
+ // Ignore all API routes and static resources
271
+ ignoreRedirectRoutes: ['/api', '/static', '/assets'];
272
+
273
+ // Use function to ignore all paths starting with /api
274
+ ignoreRedirectRoutes: pathname => pathname.startsWith('/api');
275
+ ```
276
+