@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,399 @@
1
+ ---
2
+ title: React Server Components (RSC)
3
+ ---
4
+
5
+ # React Server Components (RSC)
6
+
7
+ React Server Components (RSC) 是一种新的组件类型,允许在服务端环境中渲染组件,为现代 Web 应用带来更好的性能和开发体验。
8
+
9
+ ## 核心优势
10
+
11
+ - **零客户端 JavaScript**:Server Components 的代码不会被打包到客户端,显著减少客户端 bundle 体积
12
+ - **直接访问服务端资源**:可以直接访问数据库、文件系统、内部 API 等服务端资源,无需额外的 API 层
13
+ - **更好的性能**:数据获取更接近数据源,减少客户端数据瀑布流,提升首屏加载速度
14
+ - **自动代码分割**:基于实际渲染的数据进行代码分割,而不仅仅是路由,实现更精细的代码优化
15
+ - **更高的内聚性**:与数据、权限、缓存等紧密相关的逻辑可以留在 Server Component 中,组件内聚度更高,减少状态上浮和跨层级传递
16
+
17
+ :::tip 前置阅读
18
+ 在开始之前,建议你阅读 React 官方的 [Server Components 文档](https://react.dev/reference/rsc/server-components),对 Server Component 有一个基本的了解。
19
+
20
+ :::
21
+
22
+ ## 快速开始
23
+
24
+ 1. **确保 React 和 React DOM 升级到 19 版本**(建议 19.2.3 以上版本)
25
+
26
+ 2. **安装 `react-server-dom-webpack` 依赖**
27
+
28
+ ```bash
29
+ npm install react-server-dom-webpack
30
+ ```
31
+
32
+ :::warning 注意事项
33
+
34
+ 1. 目前暂不支持在 SPA 项目中使用 [Server Functions](https://react.dev/reference/rsc/server-functions)
35
+ 2. 目前在 Rspack 构建时,产物分片和体积还未达到最优状态,我们将在近期进一步优化
36
+
37
+ :::
38
+
39
+ 3. 设置 [`server.rsc`](/configure/app/server/rsc) 为 `true`:
40
+
41
+ ```ts title="modern.config.ts"
42
+ import { defineConfig } from '@modern-js/app-tools';
43
+
44
+ export default defineConfig({
45
+ server: {
46
+ rsc: true,
47
+ },
48
+ });
49
+ ```
50
+
51
+ :::info 旧 CSR 项目迁移
52
+ 如果是 CSR 项目,且项目中使用了 Modern.js 的 data loader,开启 RSC 后,data loader 默认会在服务端执行。
53
+ 为了与原有行为保持一致,需要先将所有的 `.data.ts` 文件改为 `.data.client.ts`。
54
+
55
+ :::
56
+
57
+ ## 使用指南
58
+
59
+ ### 默认行为
60
+
61
+ 默认情况下,当开启 RSC 时,Modern.js 中的所有组件默认是 **Server Component**。Server Component 允许你在服务端获取数据并渲染 UI。当需要交互性(如事件处理、状态管理)或使用浏览器 API 时,你可以使用 `"use client"` 指令将组件标记为 **Client Component**。
62
+
63
+ ### 组件类型选择
64
+
65
+ #### 何时使用 Client Component
66
+
67
+ 当组件需要以下功能时,你需要使用 `"use client"` 指令将其标记为 Client Component:
68
+
69
+ - **交互性**:使用 [State](https://react.dev/learn/managing-state) 和 [event handlers](https://react.dev/learn/responding-to-events),例如 `onClick`、`onChange`、`onSubmit`
70
+ - **生命周期**:使用[生命周期](https://react.dev/learn/lifecycle-of-reactive-effects)相关的 hook,例如 `useEffect`、`useLayoutEffect`
71
+ - **浏览器 API**:使用浏览器的 API(如 `window`、`document`、`localStorage`、`navigator` 等)
72
+ - **自定义 Hook**:使用[自定义 hook](https://react.dev/learn/reusing-logic-with-custom-hooks),特别是那些依赖客户端特性的 hook
73
+
74
+ #### 何时使用 Server Component
75
+
76
+ 以下场景应该使用 Server Component(默认行为,无需额外标记):
77
+
78
+ 1. **访问服务端资源**:使用服务端才有的 API(如 Node.js 的 API、文件系统、consul、RPC 等)
79
+ 2. **数据获取**:在服务端获取数据以优化性能,减少客户端请求
80
+ 3. **安全性**:访问私密的环境变量或 API 密钥,避免暴露给客户端
81
+ 4. **减少 bundle 体积**:使用大型依赖库,这些库不需要包含在客户端 bundle 中
82
+ 5. **静态内容**:渲染静态或变化频率低的内容
83
+
84
+ ### Client Boundary(客户端边界)
85
+
86
+ 一旦一个文件被标记为 `"use client"`,那么它所导入的所有其他模块(如果它们还没有被标记为 `"use client"`)也会被认为是客户端代码,并被包含在客户端的 JavaScript 包中。这就是 **Client Boundary** 的概念。
87
+
88
+ :::tip 理解 Client Boundary
89
+ `"use client"` 指令创建了一个边界:边界内的所有代码都会被打包到客户端。这意味着即使 `Button` 和 `Tooltip` 组件本身没有 `"use client"` 指令,它们也会因为被 `InteractiveCard` 导入而成为客户端代码。
90
+
91
+ :::
92
+
93
+ ```tsx title="components/InteractiveCard.tsx"
94
+ 'use client'; // <--- 这里是 Client Boundary 的起点
95
+
96
+ import { useState } from 'react';
97
+ import Button from './Button'; // Button.tsx 没有 "use client",但会被包含在客户端 bundle 中
98
+ import Tooltip from './Tooltip'; // Tooltip.tsx 也没有 "use client",同样会被包含
99
+
100
+ export default function InteractiveCard() {
101
+ const [isActive, setIsActive] = useState(false);
102
+
103
+ return (
104
+ <div onClick={() => setIsActive(!isActive)}>
105
+ <p>Click me!</p>
106
+ <Button />
107
+ <Tooltip text="This is a card" />
108
+ </div>
109
+ );
110
+ }
111
+ ```
112
+
113
+ ### 如何组合两种组件
114
+
115
+ Server Component 和 Client Component 并非孤立存在,它们需要协同工作。请记住以下两条规则:
116
+
117
+ #### Server Component 可以导入 Client Component
118
+
119
+ 这是最常见的模式,你的页面主体是一个 Server Component,负责获取数据和布局,而在其中需要交互的部分,则嵌入 Client Component。
120
+
121
+ ```tsx title="routes/page.tsx"
122
+ // Server Component(默认,无需标记)
123
+ import CounterButton from './CounterButton'; // 这是一个 Client Component
124
+
125
+ async function getPageData() {
126
+ // 在服务端获取数据
127
+ const res = await fetch('https://api.example.com/data');
128
+ return res.json();
129
+ }
130
+
131
+ export default async function Page() {
132
+ const data = await getPageData();
133
+
134
+ return (
135
+ <div>
136
+ <h1>{data.title}</h1> {/* 服务端渲染 */}
137
+ <p>This part is static.</p>
138
+ {/* Client Component 可以无缝嵌入 Server Component */}
139
+ <CounterButton />
140
+ </div>
141
+ );
142
+ }
143
+ ```
144
+
145
+ ```tsx title="routes/CounterButton.tsx"
146
+ 'use client'; // Client Component
147
+
148
+ import { useState } from 'react';
149
+
150
+ export default function CounterButton() {
151
+ const [count, setCount] = useState(0);
152
+ return <button onClick={() => setCount(c => c + 1)}>Count: {count}</button>;
153
+ }
154
+ ```
155
+
156
+ #### Client Component 不能直接导入 Server Component
157
+
158
+ 这一点初看起来可能有些违反直觉。原因在于:Server Component 的代码根本不存在于客户端。当一个 Client Component 在浏览器中渲染时,它无法去执行一个只存在于服务器上的函数。
159
+
160
+ 但是,有两种模式可以绕过这个限制:
161
+
162
+ **1. 通过 `children` Prop 传递 Server Component**
163
+
164
+ 你可以将 Server Components 作为 `children` Prop 传递给一个 Client Component。假设一个带动画的 Tabs 组件,Tabs 的切换逻辑本身是客户端的,但每个标签页的内容可能是静态的、从服务器获取的。
165
+
166
+ ```tsx title="app/components/Tabs.tsx"
167
+ 'use client'; // Client Component
168
+
169
+ import React, { useState } from 'react';
170
+
171
+ interface TabsProps {
172
+ tabLabels: string[];
173
+ children: React.ReactNode;
174
+ }
175
+
176
+ export default function Tabs({ tabLabels, children }: TabsProps) {
177
+ const [activeTab, setActiveTab] = useState(0);
178
+
179
+ return (
180
+ <div>
181
+ <nav>
182
+ {tabLabels.map((label, index) => (
183
+ <button key={label} onClick={() => setActiveTab(index)}>
184
+ {label}
185
+ </button>
186
+ ))}
187
+ </nav>
188
+ {/* React.Children.toArray 会确保只渲染活跃的子组件 */}
189
+ <div>{React.Children.toArray(children)[activeTab]}</div>
190
+ </div>
191
+ );
192
+ }
193
+ ```
194
+
195
+ ```tsx title="app/dashboard/page.tsx"
196
+ // Server Component(默认)
197
+ import Tabs from '../components/Tabs';
198
+ import Analytics from '../components/Analytics'; // Server Component
199
+ import UserSettings from '../components/UserSettings'; // Server Component
200
+
201
+ export default function DashboardPage() {
202
+ const labels = ['Analytics', 'Settings'];
203
+
204
+ return (
205
+ <main>
206
+ <h1>Dashboard</h1>
207
+ {/*
208
+ 这里,Tabs 是 Client Component(负责交互逻辑),
209
+ 但 Analytics 和 UserSettings 是在服务端渲染好的 Server Component,
210
+ 它们作为 children prop 传递给 Tabs 组件。
211
+ 这样既保持了交互性,又最大化利用了服务端渲染的优势。
212
+ */}
213
+ <Tabs tabLabels={labels}>
214
+ <Analytics />
215
+ <UserSettings />
216
+ </Tabs>
217
+ </main>
218
+ );
219
+ }
220
+ ```
221
+
222
+ 通过这种模式,你可以在保持交互性的同时,最大限度地将组件保留在服务端,从而获得极致的性能。这是 RSC 中最强大的组合模式之一。
223
+
224
+ **2. 路由组件可以独立选择组件类型**
225
+
226
+ 每一级的路由组件(如 `layout.tsx`、`page.tsx`)可以独立选择是 Client Component 还是 Server Component:
227
+
228
+ ```bash
229
+ - routes
230
+ - layout.tsx // 可以是 Client Component
231
+ - page.tsx // 可以是 Server Component
232
+ ```
233
+
234
+ 例如,假设 `layout.tsx` 是一个 Client Component(需要客户端交互),你仍然可以将 `page.tsx` 设置为 Server Component(用于数据获取和渲染)。这种方式提供了极大的灵活性,也使非 RSC 项目可以渐进式地迁移至 RSC 项目。
235
+
236
+ ## 注意事项
237
+
238
+ ### 旧 CSR 项目
239
+
240
+ 如果是 CSR 项目,且项目中使用了 EdenX 的 data loader,开启 RSC 后,data loader 默认是在服务端执行,这意味着需要先把所有的 `.data.ts` 文件改为`.data.client.ts`,才能和之前的行为保持一致。
241
+
242
+ ### 使用 Streaming SSR 的项目
243
+
244
+ 如果你同时使用了 Streaming SSR 和 RSC,在 react19 中需要通过使用 `use`,而不再需要使用 `Await` 组件:
245
+
246
+ ```ts
247
+ function NonCriticalUI({ p }: { p: Promise<string> }) {
248
+ let value = React.use(p);
249
+ return <h3>Non critical value {value}</h3>;
250
+ }
251
+
252
+ <React.Suspense fallback={<div>Loading...</div>}>
253
+ <NonCriticalUI p={nonCriticalData} />
254
+ </React.Suspense>
255
+ ```
256
+
257
+ ## 最佳实践
258
+
259
+ ### 获取数据
260
+
261
+ 1. 不管是 SSR 还是 RSC 项目,建议在服务端执行的数据获取逻辑默认使用 Modern.js 提供的 `cache` 函数,这样每一次服务端渲染,不管调用该函数多少次,只会执行一次。
262
+
263
+ > 这也是 react.js 推荐的用法,为此 react.js 提供了 [cache](https://react.dev/reference/react/cache), Modern.js 的 [cache](/guides/basic-features/data/data-cache.html) 可以视作其超集。
264
+
265
+ ```typescript
266
+ import { cache } from '@modern-js/runtime/cache';
267
+
268
+ const getCriticalCached = cache(getCritical);
269
+ ```
270
+
271
+ - 在使用 `cache` 函数的基础上,你不再需要通过 `props`,`context` 等管理服务端的状态,我们推荐哪个组件需要数据就在最近的 Server Component 中获取数据,通过 cache 函数,即使多次调用同一个函数,这样可以使项目的状态管理,业务逻辑,性能优化更简单。
272
+
273
+ ```typescript
274
+ // layout.tsx
275
+ export default async function Layout() {
276
+ const criticalData = await getCriticalCached();
277
+ }
278
+
279
+ export default async function Page() {
280
+ const criticalData = await getCriticalCached();
281
+ }
282
+ ```
283
+
284
+ ### 最佳性能
285
+
286
+ 为了发挥 RSC 或 Streaming SSR 的优势,我们需要使尽可能多的组件流动起来,一个核心原则是使 Suspense 包裹的区域尽可能地小(这也是我们推荐使用 `cache` 函数的原因之一)
287
+
288
+ 对于直接消费数据的 Server Component,我们推荐在其上层包裹 Suspense:
289
+
290
+ > 这种场景下 Server Component 往往是异步的,还有一种情况 Server Component 为同步的,由 Client Component 消费数据,在下面进行描述
291
+
292
+ ```javascript
293
+ // profile/components/PostsList.tsx
294
+ export default async function PostsList() {
295
+ const posts = await getUserPosts();
296
+
297
+ return (
298
+ <ul>
299
+ {posts.map(post => (
300
+ <li key={post.id}>{post.title}</li>
301
+ ))}
302
+ </ul>
303
+ );
304
+ }
305
+ ```
306
+
307
+ ```javascript
308
+ // profile/page.tsx
309
+ import { Suspense } from 'react';
310
+ import UserInfo from './components/UserInfo';
311
+ import PostsList from './components/PostsList';
312
+ import PostsSkeleton from './components/PostsSkeleton';
313
+
314
+ export default function ProfilePage() {
315
+ return (
316
+ <div>
317
+ <UserInfo />
318
+
319
+ <hr />
320
+
321
+ {/*
322
+ 我们将慢速的 PostsList 包裹在 Suspense 中。
323
+ 当 PostsList 正在获取数据时,用户会看到 PostsSkeleton。
324
+ 一旦 PostsList 的数据准备就绪,它会自动替换掉骨架屏。
325
+ */}
326
+ <Suspense fallback={<PostsSkeleton />}>
327
+ <PostsList posts={postsPromise} />
328
+ </Suspense>
329
+ </div>
330
+ );
331
+ }
332
+ ```
333
+
334
+ 还有一种场景是在 Client Component 中消费数据,此时我们应避免在 Server Component 中使用 `await`,避免阻塞渲染:
335
+
336
+ ```javascript
337
+ // profile/components/PostsList.tsx
338
+ 'use client';
339
+ export default function PostsList({ postsPromise }) {
340
+ const posts = use(postsPromise);
341
+
342
+ return (
343
+ <ul>
344
+ {posts.map(post => (
345
+ <li key={post.id}>{post.title}</li>
346
+ ))}
347
+ </ul>
348
+ );
349
+ }
350
+ ```
351
+
352
+ ```javascript
353
+ // profile/page.tsx
354
+ import { Suspense } from 'react';
355
+ import UserInfo from './components/UserInfo';
356
+ import PostsList from './components/PostsList'; // 现在是 Client Component
357
+ import PostsSkeleton from './components/PostsSkeleton';
358
+ import { getUserPosts } from '../lib/data'; // 导入数据获取函数
359
+
360
+ // 注意:这个组件不是 async 的
361
+ export default function ProfilePage() {
362
+ // 1. 在服务端调用数据获取函数,但不 await 它
363
+ // 这会立即返回一个 Promise
364
+ const postsPromise = getUserPosts();
365
+
366
+ return (
367
+ <div>
368
+ <UserInfo />
369
+
370
+ <hr />
371
+
372
+ {/* 2. Suspense 边界依然是必需的。它会捕获
373
+ 由 PostsList 内部的 `use` 钩子抛出的 Promise */}
374
+ <Suspense fallback={<PostsSkeleton />}>
375
+ {/* 3. 将 Promise 对象本身作为 prop 传递给客户端组件 */}
376
+ <PostsList postsPromise={postsPromise} />
377
+ </Suspense>
378
+ </div>
379
+ );
380
+ }
381
+ ```
382
+
383
+ ### Helmet
384
+
385
+ 当使用 react19 时,无需再使用 Helmet,推荐直接使用 react 提供的[组件](https://react.dev/reference/react-dom/components)。
386
+
387
+ ## 常见问题
388
+
389
+ ### `This entry point is not yet supported outside of experimental channels`
390
+
391
+ 项目中的 bundle 引入了非 19 的 react 版本,常见于 monorepo。请确保所有依赖都使用 React 19 版本。
392
+
393
+ ## 相关链接
394
+
395
+ - [React Server Components 官方文档](https://react.dev/reference/rsc/server-components)
396
+ - [React Server Functions 文档](https://react.dev/reference/rsc/server-functions)
397
+ - [数据缓存](/guides/basic-features/data/data-cache)
398
+ - [服务端渲染(SSR)](/guides/basic-features/render/ssr)
399
+ - [Streaming SSR](/guides/basic-features/render/streaming-ssr)
@@ -8,25 +8,9 @@ SSG(Static Site Generation)是一种基于数据与模板,在构建时渲
8
8
 
9
9
  ## 启用 SSG
10
10
 
11
- 我们首先需要执行 `pnpm run new` 启用 SSG 功能:
11
+ import EnableSSG from '@site-docs/components/enable-ssg';
12
12
 
13
- ```bash
14
- ? 请选择你想要的操作 启用可选功能
15
- ? 请选择功能名称 启用「SSG」功能
16
- ```
17
-
18
- 执行命令后,在 `modern.config.ts` 中注册 SSG 插件:
19
-
20
- ```ts title="modern.config.ts"
21
- import { ssgPlugin } from '@modern-js/plugin-ssg';
22
-
23
- export default defineConfig({
24
- output: {
25
- ssg: true,
26
- },
27
- plugins: [..., ssgPlugin()],
28
- });
29
- ```
13
+ <EnableSSG />
30
14
 
31
15
  ## 开发环境调试
32
16
 
@@ -67,7 +51,7 @@ export default defineConfig({
67
51
  - `/user/profile`
68
52
 
69
53
  :::tip
70
- 如果还不了解约定式路由的规则,可以先查看[路由方案](/guides/basic-features/routes)。
54
+ 如果还不了解约定式路由的规则,可以先查看[路由方案](/guides/basic-features/routes/routes)。
71
55
 
72
56
  :::
73
57
 
@@ -87,37 +71,6 @@ export default () => {
87
71
 
88
72
  执行 `pnpm run serve` 启动项目后,访问页面,在浏览器我们工具的 Network 窗口,查看请求返回的文档,文档包含组件渲染后的完整页面内容。
89
73
 
90
- ### 阻止默认行为
91
-
92
- 默认情况下,**约定式路由**的路由会全部开启 SSG。Modern.js 提供了另一个字段,用来阻止默认的 SSG 行为。
93
-
94
- 例如以下目录结构,`/`、`/user`、`/user/profle` 三条路由都开启 SSG:
95
-
96
- ```bash
97
- .
98
- ├── src
99
- │ └── routes
100
- │ ├── layout.tsx
101
- │ ├── page.tsx
102
- │ └── user
103
- │ ├── layout.tsx
104
- │ ├── page.tsx
105
- │ └── profile
106
- │ └── page.tsx
107
- ```
108
-
109
- 可以通过配置 `preventDefault` 来禁用某些路由的默认行为。进行下面配置后,最终只会生成 `/`、`/user/profle` 两条路由的 SSG 页面:
110
-
111
- ```js
112
- export default defineConfig({
113
- output: {
114
- ssg: {
115
- preventDefault: ['/user'],
116
- },
117
- },
118
- });
119
- ```
120
-
121
74
  ## 在自控式路由中使用
122
75
 
123
76
  **自控式路由**是通过组件代码定义路由,需要应用运行起来才能获取准确的路由信息。因此,无法开箱即用的使用 SSG 功能。开发者需要通过配置告知 Modern.js 框架,哪些路由需要开启 SSG 功能。
@@ -148,35 +101,40 @@ export default defineConfig({
148
101
  以上仅介绍了单入口的情况,更多相关内容可以查看 [API 文档](/configure/app/output/ssg)。
149
102
  :::
150
103
 
151
- ## 添加路由参数
152
-
153
- 在 Modern.js 中,部分路由可能是动态的,例如自控式路由中的 `/user/:id` 或是约定式路由中 `user/[id]/page.tsx` 文件生成的路由。
104
+ ## 添加动态路由
154
105
 
155
- 可以在 `output.ssg` 中配置具体的参数,渲染指定参数的路由,例如:
106
+ 在自控式路由或包含动态段的约定式路由(如 `/user/[id]`)中,直接在 `routes` 中写入具体路径。
156
107
 
157
108
  ```js
158
109
  export default defineConfig({
159
110
  output: {
160
111
  ssg: {
161
- routes: [
162
- {
163
- url: '/user/:id',
164
- params: [{
165
- id: 'modernjs',
166
- }],
167
- },
168
- ],
112
+ routes: ['/', '/about', '/user/modernjs'],
169
113
  },
170
114
  },
171
115
  });
172
116
  ```
173
117
 
174
- 此时,`/user/modernjs` 路由会被渲染,并且在渲染时,会将 `id` 参数传递给组件。当配置多个值时,对应会生成多张页面。
118
+ ## 多入口
175
119
 
176
- :::note
177
- 动态路由和 SSG 的组合,在根据 CMS 系统数据变更,实时生成静态页面时非常有用。
178
- :::
120
+ 多入口应用请通过 `output.ssgByEntries` 按入口分别配置:
179
121
 
122
+ ```js
123
+ export default defineConfig({
124
+ output: {
125
+ ssgByEntries: {
126
+ home: {
127
+ routes: ['/', '/about', '/user/modernjs'],
128
+ },
129
+ admin: false,
130
+ },
131
+ },
132
+ });
133
+ ```
134
+
135
+ :::info
136
+ 详细配置请参考:[output.ssgByEntries](/configure/app/output/ssgByEntries)
137
+ :::
180
138
 
181
139
  ## 配置渲染请求头
182
140
 
@@ -187,14 +145,14 @@ export default defineConfig({
187
145
  output: {
188
146
  ssg: {
189
147
  headers: {
190
- "x-tt-env": "ppe_modernjs"
148
+ 'x-tt-env': 'ppe_modernjs',
191
149
  },
192
150
  routes: [
193
151
  '/',
194
152
  {
195
153
  url: '/about',
196
154
  headers: {
197
- "from": "modern-website"
155
+ from: 'modern-website',
198
156
  },
199
157
  },
200
158
  ],
@@ -207,4 +165,4 @@ export default defineConfig({
207
165
 
208
166
  :::tip
209
167
  路由中设置的 `headers` 会覆盖入口中设置的 `headers`。
210
- :::
168
+ :::
@@ -8,16 +8,12 @@ title: 渲染缓存
8
8
 
9
9
  Modern.js 支持将服务器端渲染(SSR)结果进行缓存,减少服务器每次请求时的计算和渲染时间,从而加速页面加载速度,提高用户体验。同时,缓存也能降低服务端负载,节省计算资源,提高用户访问速度。
10
10
 
11
- :::tip
12
- 需要 x.43.0+
13
- :::
14
-
15
11
  ## 配置方式
16
12
 
17
13
  在应用中创建 `server/cache.[t|j]s` 文件,并导出 `cacheOption` 配置缓存即可开启 SSR 渲染缓存:
18
14
 
19
15
  ```ts title="server/cache.ts"
20
- import type { CacheOption } from '@modern-js/runtime/server';
16
+ import type { CacheOption } from '@modern-js/server-runtime';
21
17
 
22
18
  export const cacheOption: CacheOption = {
23
19
  maxAge: 500, // ms
@@ -57,7 +53,7 @@ export type CacheOptionProvider = (
57
53
 
58
54
  ```ts title="server/cache.ts"
59
55
 
60
- import type { CacheOption, CacheOptionProvider } from '@modern-js/runtime/server';
56
+ import type { CacheOption, CacheOptionProvider } from '@modern-js/server-runtime';
61
57
 
62
58
  const provider: CacheOptionProvider = (req) => {
63
59
  const { url, headers, ... } = req;
@@ -85,7 +81,7 @@ export type CacheOptions = Record<string, CacheControl | CacheOptionProvider>;
85
81
  有时开发者面对不同的路由需要应用不同的缓存策略。我们也提供一种映射的方式进行配置, 以下列代码为例:
86
82
 
87
83
  ```ts title="server/cache.ts"
88
- import type { CacheOption } from '@modern-js/runtime/server';
84
+ import type { CacheOption } from '@modern-js/server-runtime';
89
85
 
90
86
  export const cacheOption: CacheOption = {
91
87
  '/home': {
@@ -151,7 +147,7 @@ export interface Container<K = string, V = string> {
151
147
  以下面代码为例,开发者可实现一个 redis 缓存容器。
152
148
 
153
149
  ```ts
154
- import type { Container, CacheOption } from '@modern-js/runtime/server';
150
+ import type { Container, CacheOption } from '@modern-js/server-runtime';
155
151
 
156
152
  class RedisContainer implements Container {
157
153
  redis = new Redis();
@@ -206,4 +202,4 @@ export const cacheOption: CacheOption = {
206
202
  | hit | 缓存命中,返回缓存内容 |
207
203
  | stale | 缓存命中,但数据陈旧,返回缓存内容的同时做重新渲染 |
208
204
  | expired | 缓存命中,重新渲染后返回渲染结果 |
209
- | miss | 缓存未命中 |
205
+ | miss | 缓存未命中 |