@bleedingdev/modern-js-main-doc 3.2.0-ultramodern.0

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 (802) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -0
  3. package/builder-doc/docs/en/config/performance/rsdoctor.md +37 -0
  4. package/builder-doc/docs/zh/config/performance/rsdoctor.md +37 -0
  5. package/docs/en/_nav.json +36 -0
  6. package/docs/en/apis/_meta.json +13 -0
  7. package/docs/en/apis/app/commands.mdx +215 -0
  8. package/docs/en/apis/app/hooks/_meta.json +28 -0
  9. package/docs/en/apis/app/hooks/api/lambda.mdx +13 -0
  10. package/docs/en/apis/app/hooks/config/_meta.json +1 -0
  11. package/docs/en/apis/app/hooks/config/favicon.mdx +29 -0
  12. package/docs/en/apis/app/hooks/config/html.mdx +9 -0
  13. package/docs/en/apis/app/hooks/config/icon.mdx +29 -0
  14. package/docs/en/apis/app/hooks/config/mock.mdx +7 -0
  15. package/docs/en/apis/app/hooks/config/public.mdx +30 -0
  16. package/docs/en/apis/app/hooks/config/upload.mdx +54 -0
  17. package/docs/en/apis/app/hooks/modern-config.mdx +9 -0
  18. package/docs/en/apis/app/hooks/server/server.mdx +10 -0
  19. package/docs/en/apis/app/hooks/shared.mdx +7 -0
  20. package/docs/en/apis/app/hooks/src/app.mdx +30 -0
  21. package/docs/en/apis/app/hooks/src/entry.mdx +39 -0
  22. package/docs/en/apis/app/hooks/src/entry.server.mdx +56 -0
  23. package/docs/en/apis/app/hooks/src/modern.runtime.mdx +9 -0
  24. package/docs/en/apis/app/hooks/src/routes.mdx +90 -0
  25. package/docs/en/apis/app/hooks/src/server.mdx +7 -0
  26. package/docs/en/apis/app/runtime/_meta.json +32 -0
  27. package/docs/en/apis/app/runtime/bff/use-backend-context.mdx +30 -0
  28. package/docs/en/apis/app/runtime/core/create-root.mdx +22 -0
  29. package/docs/en/apis/app/runtime/core/render.mdx +42 -0
  30. package/docs/en/apis/app/runtime/core/runtime-context.mdx +160 -0
  31. package/docs/en/apis/app/runtime/router/router.mdx +288 -0
  32. package/docs/en/apis/app/runtime/ssr/no-ssr.mdx +38 -0
  33. package/docs/en/apis/app/runtime/ssr/renderStreaming.mdx +71 -0
  34. package/docs/en/apis/app/runtime/ssr/renderString.mdx +64 -0
  35. package/docs/en/apis/app/runtime/ssr/requestHandler.mdx +48 -0
  36. package/docs/en/apis/app/runtime/utility/css-in-js.mdx +44 -0
  37. package/docs/en/apis/app/runtime/utility/head.mdx +38 -0
  38. package/docs/en/apis/app/runtime/utility/loadable.mdx +85 -0
  39. package/docs/en/community/_meta.json +11 -0
  40. package/docs/en/community/blog/2022-0708-updates.md +95 -0
  41. package/docs/en/community/blog/2022-0910-updates.md +80 -0
  42. package/docs/en/community/blog/_meta.json +7 -0
  43. package/docs/en/community/blog/overview.md +67 -0
  44. package/docs/en/community/blog/v2-release-note.mdx +244 -0
  45. package/docs/en/community/blog/v3-release-note.mdx +628 -0
  46. package/docs/en/community/contributing-guide.mdx +257 -0
  47. package/docs/en/community/releases.mdx +31 -0
  48. package/docs/en/community/showcase.mdx +15 -0
  49. package/docs/en/community/team.mdx +29 -0
  50. package/docs/en/components/auto-upgrade.mdx +0 -0
  51. package/docs/en/components/bff-upload.mdx +97 -0
  52. package/docs/en/components/build-output.mdx +45 -0
  53. package/docs/en/components/bundler.mdx +3 -0
  54. package/docs/en/components/convention-routing-motivation.mdx +0 -0
  55. package/docs/en/components/debug-app.mdx +15 -0
  56. package/docs/en/components/default-browserslist.mdx +7 -0
  57. package/docs/en/components/deploy-command.mdx +14 -0
  58. package/docs/en/components/deploy.mdx +1 -0
  59. package/docs/en/components/enable-bff-caution.mdx +3 -0
  60. package/docs/en/components/enable-bff.mdx +56 -0
  61. package/docs/en/components/enable-ssg.mdx +49 -0
  62. package/docs/en/components/entry-mode.mdx +0 -0
  63. package/docs/en/components/entry-scan-logic.mdx +7 -0
  64. package/docs/en/components/extend-bff-function.mdx +3 -0
  65. package/docs/en/components/hono.mdx +120 -0
  66. package/docs/en/components/init-app.mdx +111 -0
  67. package/docs/en/components/init-rspack-app.mdx +5 -0
  68. package/docs/en/components/internal-logger.mdx +25 -0
  69. package/docs/en/components/internal-metrics.mdx +20 -0
  70. package/docs/en/components/international/custom-instance-code.mdx +16 -0
  71. package/docs/en/components/international/init-options-desc.mdx +1 -0
  72. package/docs/en/components/international/install-command.mdx +10 -0
  73. package/docs/en/components/international/instance-code.mdx +16 -0
  74. package/docs/en/components/international/introduce.mdx +5 -0
  75. package/docs/en/components/international/platform-support.mdx +0 -0
  76. package/docs/en/components/language-config.mdx +9 -0
  77. package/docs/en/components/micro-frontend.mdx +6 -0
  78. package/docs/en/components/micro-master-manifest-config.mdx +15 -0
  79. package/docs/en/components/micro-runtime-config.mdx +17 -0
  80. package/docs/en/components/module-federation.mdx +7 -0
  81. package/docs/en/components/new-entry-tooltip.mdx +0 -0
  82. package/docs/en/components/nodeVersion.mdx +28 -0
  83. package/docs/en/components/other-plugins.mdx +0 -0
  84. package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
  85. package/docs/en/components/output-distpath-warning.mdx +0 -0
  86. package/docs/en/components/output-polyfill-extend.mdx +1 -0
  87. package/docs/en/components/prerequisites.mdx +18 -0
  88. package/docs/en/components/release-note.mdx +1 -0
  89. package/docs/en/components/routes-practice.mdx +0 -0
  90. package/docs/en/components/rsbuild-config-tooltip.mdx +5 -0
  91. package/docs/en/components/rsbuild.mdx +3 -0
  92. package/docs/en/components/rsc-deploy-tip.mdx +1 -0
  93. package/docs/en/components/rspack.mdx +3 -0
  94. package/docs/en/components/rspackTip.mdx +7 -0
  95. package/docs/en/components/runtime-cli-config.mdx +0 -0
  96. package/docs/en/components/serve-command.mdx +22 -0
  97. package/docs/en/components/ssr-monitor.mdx +3 -0
  98. package/docs/en/components/stream-ssr-performance.mdx +0 -0
  99. package/docs/en/components/swc.mdx +3 -0
  100. package/docs/en/components/tech-stack-node-framework.mdx +1 -0
  101. package/docs/en/components/turtorials-example-list.mdx +2 -0
  102. package/docs/en/components/ua-polyfill.mdx +44 -0
  103. package/docs/en/components/upgrade-browserslist.mdx +0 -0
  104. package/docs/en/components/upgrade-config-deploy.mdx +0 -0
  105. package/docs/en/components/upgrade-faq.mdx +0 -0
  106. package/docs/en/configure/_meta.json +78 -0
  107. package/docs/en/configure/app/bff/cross-project.mdx +24 -0
  108. package/docs/en/configure/app/bff/effect.mdx +152 -0
  109. package/docs/en/configure/app/bff/prefix.mdx +33 -0
  110. package/docs/en/configure/app/bff/runtime-framework.mdx +28 -0
  111. package/docs/en/configure/app/builder-plugins.mdx +70 -0
  112. package/docs/en/configure/app/dev/asset-prefix.mdx +18 -0
  113. package/docs/en/configure/app/dev/before-start-url.mdx +21 -0
  114. package/docs/en/configure/app/dev/client.mdx +45 -0
  115. package/docs/en/configure/app/dev/hmr.mdx +14 -0
  116. package/docs/en/configure/app/dev/host.mdx +22 -0
  117. package/docs/en/configure/app/dev/https.mdx +81 -0
  118. package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
  119. package/docs/en/configure/app/dev/live-reload.mdx +14 -0
  120. package/docs/en/configure/app/dev/progress-bar.mdx +23 -0
  121. package/docs/en/configure/app/dev/server.mdx +128 -0
  122. package/docs/en/configure/app/dev/setup-middlewares.mdx +36 -0
  123. package/docs/en/configure/app/dev/start-url.mdx +53 -0
  124. package/docs/en/configure/app/dev/watch-files.mdx +31 -0
  125. package/docs/en/configure/app/dev/write-to-disk.mdx +14 -0
  126. package/docs/en/configure/app/experiments/source-build.mdx +33 -0
  127. package/docs/en/configure/app/html/app-icon.mdx +32 -0
  128. package/docs/en/configure/app/html/crossorigin.mdx +14 -0
  129. package/docs/en/configure/app/html/favicon.mdx +20 -0
  130. package/docs/en/configure/app/html/inject.mdx +14 -0
  131. package/docs/en/configure/app/html/meta.mdx +28 -0
  132. package/docs/en/configure/app/html/mount-id.mdx +14 -0
  133. package/docs/en/configure/app/html/output-structure.mdx +14 -0
  134. package/docs/en/configure/app/html/script-loading.mdx +14 -0
  135. package/docs/en/configure/app/html/tags.mdx +19 -0
  136. package/docs/en/configure/app/html/template-parameters.mdx +37 -0
  137. package/docs/en/configure/app/html/template.mdx +14 -0
  138. package/docs/en/configure/app/html/title.mdx +22 -0
  139. package/docs/en/configure/app/output/asset-prefix.mdx +18 -0
  140. package/docs/en/configure/app/output/assets-retry.mdx +81 -0
  141. package/docs/en/configure/app/output/charset.mdx +14 -0
  142. package/docs/en/configure/app/output/clean-dist-path.mdx +20 -0
  143. package/docs/en/configure/app/output/convert-to-rem.mdx +83 -0
  144. package/docs/en/configure/app/output/copy.mdx +14 -0
  145. package/docs/en/configure/app/output/css-modules.mdx +52 -0
  146. package/docs/en/configure/app/output/data-uri-limit.mdx +30 -0
  147. package/docs/en/configure/app/output/disable-css-module-extension.mdx +59 -0
  148. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +45 -0
  149. package/docs/en/configure/app/output/disable-svgr.mdx +20 -0
  150. package/docs/en/configure/app/output/disable-ts-checker.mdx +53 -0
  151. package/docs/en/configure/app/output/dist-path.mdx +51 -0
  152. package/docs/en/configure/app/output/enable-asset-manifest.mdx +40 -0
  153. package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +32 -0
  154. package/docs/en/configure/app/output/enable-inline-route-manifests.mdx +20 -0
  155. package/docs/en/configure/app/output/externals.mdx +24 -0
  156. package/docs/en/configure/app/output/filename-hash.mdx +14 -0
  157. package/docs/en/configure/app/output/filename.mdx +59 -0
  158. package/docs/en/configure/app/output/inject-styles.mdx +14 -0
  159. package/docs/en/configure/app/output/inline-scripts.mdx +33 -0
  160. package/docs/en/configure/app/output/inline-styles.mdx +33 -0
  161. package/docs/en/configure/app/output/legal-comments.mdx +22 -0
  162. package/docs/en/configure/app/output/minify.mdx +26 -0
  163. package/docs/en/configure/app/output/override-browserslist.mdx +26 -0
  164. package/docs/en/configure/app/output/polyfill.mdx +18 -0
  165. package/docs/en/configure/app/output/source-map.mdx +34 -0
  166. package/docs/en/configure/app/output/split-route-chunks.mdx +20 -0
  167. package/docs/en/configure/app/output/ssg.mdx +85 -0
  168. package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
  169. package/docs/en/configure/app/output/svg-default-export.mdx +34 -0
  170. package/docs/en/configure/app/output/temp-dir.mdx +24 -0
  171. package/docs/en/configure/app/performance/build-cache.mdx +43 -0
  172. package/docs/en/configure/app/performance/chunk-split.mdx +44 -0
  173. package/docs/en/configure/app/performance/dns-prefetch.mdx +19 -0
  174. package/docs/en/configure/app/performance/preconnect.mdx +20 -0
  175. package/docs/en/configure/app/performance/prefetch.mdx +25 -0
  176. package/docs/en/configure/app/performance/preload.mdx +27 -0
  177. package/docs/en/configure/app/performance/print-file-size.mdx +44 -0
  178. package/docs/en/configure/app/performance/profile.mdx +14 -0
  179. package/docs/en/configure/app/performance/remove-console.mdx +14 -0
  180. package/docs/en/configure/app/performance/remove-moment-locale.mdx +14 -0
  181. package/docs/en/configure/app/performance/rsdoctor.mdx +39 -0
  182. package/docs/en/configure/app/plugins.mdx +59 -0
  183. package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
  184. package/docs/en/configure/app/resolve/alias.mdx +13 -0
  185. package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
  186. package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
  187. package/docs/en/configure/app/resolve/extensions.mdx +18 -0
  188. package/docs/en/configure/app/runtime/0-intro.mdx +61 -0
  189. package/docs/en/configure/app/runtime/plugins.mdx +58 -0
  190. package/docs/en/configure/app/runtime/router.mdx +39 -0
  191. package/docs/en/configure/app/security/check-syntax.mdx +73 -0
  192. package/docs/en/configure/app/security/nonce.mdx +19 -0
  193. package/docs/en/configure/app/security/sri.mdx +24 -0
  194. package/docs/en/configure/app/server/base-url.mdx +30 -0
  195. package/docs/en/configure/app/server/port.mdx +22 -0
  196. package/docs/en/configure/app/server/public-routes.mdx +26 -0
  197. package/docs/en/configure/app/server/routes.mdx +90 -0
  198. package/docs/en/configure/app/server/rsc.mdx +30 -0
  199. package/docs/en/configure/app/server/ssr-by-entries.mdx +29 -0
  200. package/docs/en/configure/app/server/ssr.mdx +85 -0
  201. package/docs/en/configure/app/server/tsconfig-path.mdx +63 -0
  202. package/docs/en/configure/app/source/alias-strategy.mdx +18 -0
  203. package/docs/en/configure/app/source/alias.mdx +27 -0
  204. package/docs/en/configure/app/source/config-dir.mdx +24 -0
  205. package/docs/en/configure/app/source/decorators.mdx +29 -0
  206. package/docs/en/configure/app/source/define.mdx +20 -0
  207. package/docs/en/configure/app/source/disable-default-entries.mdx +32 -0
  208. package/docs/en/configure/app/source/enable-async-entry.mdx +54 -0
  209. package/docs/en/configure/app/source/enable-async-pre-entry.mdx +30 -0
  210. package/docs/en/configure/app/source/entries-dir.mdx +39 -0
  211. package/docs/en/configure/app/source/entries.mdx +183 -0
  212. package/docs/en/configure/app/source/exclude.mdx +14 -0
  213. package/docs/en/configure/app/source/global-vars.mdx +110 -0
  214. package/docs/en/configure/app/source/include.mdx +40 -0
  215. package/docs/en/configure/app/source/main-entry-name.mdx +28 -0
  216. package/docs/en/configure/app/source/pre-entry.mdx +14 -0
  217. package/docs/en/configure/app/source/transform-import.mdx +31 -0
  218. package/docs/en/configure/app/split-chunks.mdx +17 -0
  219. package/docs/en/configure/app/tools/autoprefixer.mdx +48 -0
  220. package/docs/en/configure/app/tools/bundler-chain.mdx +30 -0
  221. package/docs/en/configure/app/tools/css-extract.mdx +37 -0
  222. package/docs/en/configure/app/tools/css-loader.mdx +21 -0
  223. package/docs/en/configure/app/tools/dev-server.mdx +117 -0
  224. package/docs/en/configure/app/tools/html-plugin.mdx +45 -0
  225. package/docs/en/configure/app/tools/less.mdx +85 -0
  226. package/docs/en/configure/app/tools/lightningcss-loader.mdx +39 -0
  227. package/docs/en/configure/app/tools/minify-css.mdx +57 -0
  228. package/docs/en/configure/app/tools/postcss.mdx +38 -0
  229. package/docs/en/configure/app/tools/rspack.mdx +14 -0
  230. package/docs/en/configure/app/tools/sass.mdx +82 -0
  231. package/docs/en/configure/app/tools/style-loader.mdx +14 -0
  232. package/docs/en/configure/app/tools/swc.mdx +69 -0
  233. package/docs/en/configure/app/tools/ts-checker.mdx +56 -0
  234. package/docs/en/configure/app/usage.mdx +276 -0
  235. package/docs/en/guides/_meta.json +37 -0
  236. package/docs/en/guides/advanced-features/_meta.json +32 -0
  237. package/docs/en/guides/advanced-features/bff/_meta.json +10 -0
  238. package/docs/en/guides/advanced-features/bff/cross-project.mdx +110 -0
  239. package/docs/en/guides/advanced-features/bff/data-platform.mdx +118 -0
  240. package/docs/en/guides/advanced-features/bff/extend-server.mdx +120 -0
  241. package/docs/en/guides/advanced-features/bff/frameworks.mdx +118 -0
  242. package/docs/en/guides/advanced-features/bff/function.mdx +261 -0
  243. package/docs/en/guides/advanced-features/bff/operators.mdx +629 -0
  244. package/docs/en/guides/advanced-features/bff/sdk.mdx +116 -0
  245. package/docs/en/guides/advanced-features/bff/upload.mdx +7 -0
  246. package/docs/en/guides/advanced-features/bff.mdx +22 -0
  247. package/docs/en/guides/advanced-features/build-performance.mdx +134 -0
  248. package/docs/en/guides/advanced-features/compatibility.mdx +81 -0
  249. package/docs/en/guides/advanced-features/international/_meta.json +10 -0
  250. package/docs/en/guides/advanced-features/international/advanced.mdx +132 -0
  251. package/docs/en/guides/advanced-features/international/api.mdx +235 -0
  252. package/docs/en/guides/advanced-features/international/best-practices.mdx +290 -0
  253. package/docs/en/guides/advanced-features/international/configuration.mdx +221 -0
  254. package/docs/en/guides/advanced-features/international/locale-detection.mdx +130 -0
  255. package/docs/en/guides/advanced-features/international/quick-start.mdx +112 -0
  256. package/docs/en/guides/advanced-features/international/resource-loading.mdx +158 -0
  257. package/docs/en/guides/advanced-features/international/routing.mdx +134 -0
  258. package/docs/en/guides/advanced-features/international.mdx +29 -0
  259. package/docs/en/guides/advanced-features/low-level.mdx +50 -0
  260. package/docs/en/guides/advanced-features/page-performance/_meta.json +1 -0
  261. package/docs/en/guides/advanced-features/page-performance/code-split.mdx +81 -0
  262. package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +163 -0
  263. package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +101 -0
  264. package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +54 -0
  265. package/docs/en/guides/advanced-features/server-monitor/_meta.json +1 -0
  266. package/docs/en/guides/advanced-features/server-monitor/logger.mdx +19 -0
  267. package/docs/en/guides/advanced-features/server-monitor/metrics.mdx +41 -0
  268. package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +242 -0
  269. package/docs/en/guides/advanced-features/source-build.mdx +168 -0
  270. package/docs/en/guides/advanced-features/web-server.mdx +284 -0
  271. package/docs/en/guides/basic-features/_meta.json +49 -0
  272. package/docs/en/guides/basic-features/alias.mdx +106 -0
  273. package/docs/en/guides/basic-features/css/_meta.json +1 -0
  274. package/docs/en/guides/basic-features/css/css-in-js.mdx +69 -0
  275. package/docs/en/guides/basic-features/css/css-modules.mdx +212 -0
  276. package/docs/en/guides/basic-features/css/css.mdx +31 -0
  277. package/docs/en/guides/basic-features/css/tailwindcss.mdx +27 -0
  278. package/docs/en/guides/basic-features/data/_meta.json +1 -0
  279. package/docs/en/guides/basic-features/data/data-cache.mdx +515 -0
  280. package/docs/en/guides/basic-features/data/data-fetch.mdx +419 -0
  281. package/docs/en/guides/basic-features/data/data-write.mdx +230 -0
  282. package/docs/en/guides/basic-features/debug/_meta.json +1 -0
  283. package/docs/en/guides/basic-features/debug/mock.mdx +102 -0
  284. package/docs/en/guides/basic-features/debug/proxy.mdx +25 -0
  285. package/docs/en/guides/basic-features/debug/rsdoctor.mdx +48 -0
  286. package/docs/en/guides/basic-features/debug/using-storybook.mdx +100 -0
  287. package/docs/en/guides/basic-features/deploy.mdx +448 -0
  288. package/docs/en/guides/basic-features/env-vars.mdx +181 -0
  289. package/docs/en/guides/basic-features/html.mdx +259 -0
  290. package/docs/en/guides/basic-features/output-files.mdx +145 -0
  291. package/docs/en/guides/basic-features/render/_meta.json +10 -0
  292. package/docs/en/guides/basic-features/render/before-render.mdx +108 -0
  293. package/docs/en/guides/basic-features/render/overview.mdx +52 -0
  294. package/docs/en/guides/basic-features/render/rsc.mdx +534 -0
  295. package/docs/en/guides/basic-features/render/ssg.mdx +167 -0
  296. package/docs/en/guides/basic-features/render/ssr-cache.mdx +201 -0
  297. package/docs/en/guides/basic-features/render/ssr.mdx +323 -0
  298. package/docs/en/guides/basic-features/render/streaming-ssr.mdx +267 -0
  299. package/docs/en/guides/basic-features/render/tanstack-rsc.mdx +226 -0
  300. package/docs/en/guides/basic-features/routes/_meta.json +1 -0
  301. package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
  302. package/docs/en/guides/basic-features/routes/routes.mdx +517 -0
  303. package/docs/en/guides/basic-features/static-assets/_meta.json +1 -0
  304. package/docs/en/guides/basic-features/static-assets/json-files.mdx +124 -0
  305. package/docs/en/guides/basic-features/static-assets/svg-assets.mdx +172 -0
  306. package/docs/en/guides/basic-features/static-assets/wasm-assets.mdx +66 -0
  307. package/docs/en/guides/basic-features/static-assets.mdx +164 -0
  308. package/docs/en/guides/basic-features/testing/_meta.json +1 -0
  309. package/docs/en/guides/basic-features/testing/cypress.mdx +95 -0
  310. package/docs/en/guides/basic-features/testing/jest.mdx +148 -0
  311. package/docs/en/guides/basic-features/testing/playwright.mdx +111 -0
  312. package/docs/en/guides/basic-features/testing/rstest.mdx +163 -0
  313. package/docs/en/guides/basic-features/testing/vitest.mdx +100 -0
  314. package/docs/en/guides/concept/_meta.json +1 -0
  315. package/docs/en/guides/concept/builder.mdx +60 -0
  316. package/docs/en/guides/concept/entries.mdx +325 -0
  317. package/docs/en/guides/concept/server.mdx +35 -0
  318. package/docs/en/guides/get-started/_meta.json +8 -0
  319. package/docs/en/guides/get-started/glossary.mdx +63 -0
  320. package/docs/en/guides/get-started/introduction.mdx +45 -0
  321. package/docs/en/guides/get-started/quick-start.mdx +92 -0
  322. package/docs/en/guides/get-started/tech-stack.mdx +91 -0
  323. package/docs/en/guides/get-started/ultramodern.mdx +98 -0
  324. package/docs/en/guides/get-started/upgrade.mdx +114 -0
  325. package/docs/en/guides/topic-detail/_meta.json +8 -0
  326. package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -0
  327. package/docs/en/guides/topic-detail/module-federation/application.mdx +116 -0
  328. package/docs/en/guides/topic-detail/module-federation/deploy.mdx +104 -0
  329. package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
  330. package/docs/en/guides/topic-detail/module-federation/introduce.mdx +36 -0
  331. package/docs/en/guides/topic-detail/module-federation/ssr.mdx +170 -0
  332. package/docs/en/guides/topic-detail/module-federation/usage.mdx +202 -0
  333. package/docs/en/guides/troubleshooting/_meta.json +1 -0
  334. package/docs/en/guides/troubleshooting/builder.mdx +114 -0
  335. package/docs/en/guides/troubleshooting/cli.mdx +39 -0
  336. package/docs/en/guides/troubleshooting/dependencies.mdx +123 -0
  337. package/docs/en/guides/troubleshooting/hmr.mdx +148 -0
  338. package/docs/en/guides/upgrade/_meta.json +1 -0
  339. package/docs/en/guides/upgrade/config.mdx +949 -0
  340. package/docs/en/guides/upgrade/entry.mdx +463 -0
  341. package/docs/en/guides/upgrade/other.mdx +183 -0
  342. package/docs/en/guides/upgrade/overview.mdx +33 -0
  343. package/docs/en/guides/upgrade/tailwindcss.mdx +92 -0
  344. package/docs/en/guides/upgrade/web-server.md +109 -0
  345. package/docs/en/index.md +4 -0
  346. package/docs/en/plugin/_meta.json +25 -0
  347. package/docs/en/plugin/cli-plugins/_meta.json +1 -0
  348. package/docs/en/plugin/cli-plugins/api.mdx +573 -0
  349. package/docs/en/plugin/cli-plugins/life-cycle.mdx +135 -0
  350. package/docs/en/plugin/introduction.mdx +153 -0
  351. package/docs/en/plugin/official/_meta.json +7 -0
  352. package/docs/en/plugin/official/cli-plugins/_meta.json +1 -0
  353. package/docs/en/plugin/official/cli-plugins/plugin-bff.mdx +5 -0
  354. package/docs/en/plugin/official/cli-plugins/plugin-ssg.mdx +5 -0
  355. package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  356. package/docs/en/plugin/official/cli-plugins.mdx +4 -0
  357. package/docs/en/plugin/plugin-system.mdx +244 -0
  358. package/docs/en/plugin/runtime-plugins/_meta.json +1 -0
  359. package/docs/en/plugin/runtime-plugins/api.mdx +193 -0
  360. package/docs/en/plugin/runtime-plugins/life-cycle.mdx +29 -0
  361. package/docs/en/plugin/server-plugins/_meta.json +1 -0
  362. package/docs/en/plugin/server-plugins/api.mdx +212 -0
  363. package/docs/en/plugin/server-plugins/life-cycle.mdx +43 -0
  364. package/docs/en/tutorials/_meta.json +7 -0
  365. package/docs/en/tutorials/examples/csr-auth.mdx +31 -0
  366. package/docs/en/tutorials/foundations/introduction.mdx +22 -0
  367. package/docs/zh/_nav.json +36 -0
  368. package/docs/zh/apis/_meta.json +13 -0
  369. package/docs/zh/apis/app/commands.mdx +215 -0
  370. package/docs/zh/apis/app/hooks/_meta.json +28 -0
  371. package/docs/zh/apis/app/hooks/api/lambda.mdx +14 -0
  372. package/docs/zh/apis/app/hooks/config/_meta.json +1 -0
  373. package/docs/zh/apis/app/hooks/config/favicon.mdx +29 -0
  374. package/docs/zh/apis/app/hooks/config/html.mdx +9 -0
  375. package/docs/zh/apis/app/hooks/config/icon.mdx +29 -0
  376. package/docs/zh/apis/app/hooks/config/mock.mdx +7 -0
  377. package/docs/zh/apis/app/hooks/config/public.mdx +30 -0
  378. package/docs/zh/apis/app/hooks/config/upload.mdx +54 -0
  379. package/docs/zh/apis/app/hooks/modern-config.mdx +9 -0
  380. package/docs/zh/apis/app/hooks/server/server.mdx +10 -0
  381. package/docs/zh/apis/app/hooks/shared.mdx +7 -0
  382. package/docs/zh/apis/app/hooks/src/app.mdx +36 -0
  383. package/docs/zh/apis/app/hooks/src/entry.mdx +39 -0
  384. package/docs/zh/apis/app/hooks/src/entry.server.mdx +56 -0
  385. package/docs/zh/apis/app/hooks/src/modern.runtime.mdx +9 -0
  386. package/docs/zh/apis/app/hooks/src/routes.mdx +90 -0
  387. package/docs/zh/apis/app/hooks/src/server.mdx +7 -0
  388. package/docs/zh/apis/app/runtime/_meta.json +32 -0
  389. package/docs/zh/apis/app/runtime/bff/use-backend-context.mdx +31 -0
  390. package/docs/zh/apis/app/runtime/core/create-root.mdx +22 -0
  391. package/docs/zh/apis/app/runtime/core/render.mdx +43 -0
  392. package/docs/zh/apis/app/runtime/core/runtime-context.mdx +160 -0
  393. package/docs/zh/apis/app/runtime/router/router.mdx +287 -0
  394. package/docs/zh/apis/app/runtime/ssr/no-ssr.mdx +38 -0
  395. package/docs/zh/apis/app/runtime/ssr/renderStreaming.mdx +71 -0
  396. package/docs/zh/apis/app/runtime/ssr/renderString.mdx +64 -0
  397. package/docs/zh/apis/app/runtime/ssr/requestHandler.mdx +48 -0
  398. package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +44 -0
  399. package/docs/zh/apis/app/runtime/utility/head.mdx +38 -0
  400. package/docs/zh/apis/app/runtime/utility/loadable.mdx +83 -0
  401. package/docs/zh/community/_meta.json +11 -0
  402. package/docs/zh/community/blog/2022-0708-updates.md +95 -0
  403. package/docs/zh/community/blog/2022-0910-updates.md +80 -0
  404. package/docs/zh/community/blog/_meta.json +7 -0
  405. package/docs/zh/community/blog/overview.md +74 -0
  406. package/docs/zh/community/blog/v2-release-note.mdx +244 -0
  407. package/docs/zh/community/blog/v3-release-note.mdx +628 -0
  408. package/docs/zh/community/contributing-guide.mdx +256 -0
  409. package/docs/zh/community/releases.mdx +31 -0
  410. package/docs/zh/community/showcase.mdx +15 -0
  411. package/docs/zh/community/team.mdx +29 -0
  412. package/docs/zh/components/auto-upgrade.mdx +0 -0
  413. package/docs/zh/components/bff-operator-code.mdx +5 -0
  414. package/docs/zh/components/bff-upload.mdx +98 -0
  415. package/docs/zh/components/build-output.mdx +45 -0
  416. package/docs/zh/components/bundler.mdx +3 -0
  417. package/docs/zh/components/convention-routing-motivation.mdx +0 -0
  418. package/docs/zh/components/debug-app.mdx +16 -0
  419. package/docs/zh/components/default-browserslist.mdx +7 -0
  420. package/docs/zh/components/deploy-command.mdx +14 -0
  421. package/docs/zh/components/deploy.mdx +1 -0
  422. package/docs/zh/components/enable-bff-caution.mdx +4 -0
  423. package/docs/zh/components/enable-bff.mdx +56 -0
  424. package/docs/zh/components/enable-ssg.mdx +49 -0
  425. package/docs/zh/components/entry-mode.mdx +0 -0
  426. package/docs/zh/components/entry-scan-logic.mdx +7 -0
  427. package/docs/zh/components/extend-bff-function.mdx +3 -0
  428. package/docs/zh/components/hono.mdx +120 -0
  429. package/docs/zh/components/init-app.mdx +111 -0
  430. package/docs/zh/components/init-rspack-app.mdx +5 -0
  431. package/docs/zh/components/internal-logger.mdx +25 -0
  432. package/docs/zh/components/internal-metrics.mdx +20 -0
  433. package/docs/zh/components/international/custom-instance-code.mdx +16 -0
  434. package/docs/zh/components/international/init-options-desc.mdx +1 -0
  435. package/docs/zh/components/international/install-command.mdx +11 -0
  436. package/docs/zh/components/international/instance-code.mdx +16 -0
  437. package/docs/zh/components/international/introduce.mdx +5 -0
  438. package/docs/zh/components/international/platform-support.mdx +0 -0
  439. package/docs/zh/components/language-config.mdx +9 -0
  440. package/docs/zh/components/micro-frontend.mdx +6 -0
  441. package/docs/zh/components/micro-master-manifest-config.mdx +15 -0
  442. package/docs/zh/components/micro-runtime-config.mdx +17 -0
  443. package/docs/zh/components/module-federation.mdx +7 -0
  444. package/docs/zh/components/new-entry-tooltip.mdx +0 -0
  445. package/docs/zh/components/nodeVersion.mdx +28 -0
  446. package/docs/zh/components/other-plugins.mdx +0 -0
  447. package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
  448. package/docs/zh/components/output-distpath-warning.mdx +0 -0
  449. package/docs/zh/components/output-polyfill-extend.mdx +1 -0
  450. package/docs/zh/components/prerequisites.mdx +18 -0
  451. package/docs/zh/components/release-note.mdx +1 -0
  452. package/docs/zh/components/routes-practice.mdx +0 -0
  453. package/docs/zh/components/rsbuild-config-tooltip.mdx +5 -0
  454. package/docs/zh/components/rsbuild.mdx +3 -0
  455. package/docs/zh/components/rsc-deploy-tip.mdx +1 -0
  456. package/docs/zh/components/rspack.mdx +3 -0
  457. package/docs/zh/components/rspackTip.mdx +7 -0
  458. package/docs/zh/components/runtime-cli-config.mdx +0 -0
  459. package/docs/zh/components/self-route-example.mdx +21 -0
  460. package/docs/zh/components/serve-command.mdx +22 -0
  461. package/docs/zh/components/ssr-monitor.mdx +3 -0
  462. package/docs/zh/components/stream-ssr-performance.mdx +0 -0
  463. package/docs/zh/components/swc.mdx +3 -0
  464. package/docs/zh/components/tech-stack-node-framework.mdx +1 -0
  465. package/docs/zh/components/turtorials-example-list.mdx +2 -0
  466. package/docs/zh/components/ua-polyfill.mdx +44 -0
  467. package/docs/zh/components/upgrade-browserslist.mdx +0 -0
  468. package/docs/zh/components/upgrade-config-deploy.mdx +0 -0
  469. package/docs/zh/components/upgrade-faq.mdx +0 -0
  470. package/docs/zh/configure/_meta.json +78 -0
  471. package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
  472. package/docs/zh/configure/app/bff/effect.mdx +152 -0
  473. package/docs/zh/configure/app/bff/prefix.mdx +33 -0
  474. package/docs/zh/configure/app/bff/runtime-framework.mdx +28 -0
  475. package/docs/zh/configure/app/builder-plugins.mdx +72 -0
  476. package/docs/zh/configure/app/dev/asset-prefix.mdx +18 -0
  477. package/docs/zh/configure/app/dev/before-start-url.mdx +21 -0
  478. package/docs/zh/configure/app/dev/client.mdx +45 -0
  479. package/docs/zh/configure/app/dev/hmr.mdx +14 -0
  480. package/docs/zh/configure/app/dev/host.mdx +22 -0
  481. package/docs/zh/configure/app/dev/https.mdx +82 -0
  482. package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
  483. package/docs/zh/configure/app/dev/live-reload.mdx +14 -0
  484. package/docs/zh/configure/app/dev/progress-bar.mdx +23 -0
  485. package/docs/zh/configure/app/dev/server.mdx +128 -0
  486. package/docs/zh/configure/app/dev/setup-middlewares.mdx +36 -0
  487. package/docs/zh/configure/app/dev/start-url.mdx +54 -0
  488. package/docs/zh/configure/app/dev/watch-files.mdx +31 -0
  489. package/docs/zh/configure/app/dev/write-to-disk.mdx +14 -0
  490. package/docs/zh/configure/app/experiments/source-build.mdx +35 -0
  491. package/docs/zh/configure/app/html/app-icon.mdx +32 -0
  492. package/docs/zh/configure/app/html/crossorigin.mdx +15 -0
  493. package/docs/zh/configure/app/html/favicon.mdx +21 -0
  494. package/docs/zh/configure/app/html/inject.mdx +14 -0
  495. package/docs/zh/configure/app/html/meta.mdx +28 -0
  496. package/docs/zh/configure/app/html/mount-id.mdx +14 -0
  497. package/docs/zh/configure/app/html/output-structure.mdx +14 -0
  498. package/docs/zh/configure/app/html/script-loading.mdx +14 -0
  499. package/docs/zh/configure/app/html/tags.mdx +19 -0
  500. package/docs/zh/configure/app/html/template-parameters.mdx +37 -0
  501. package/docs/zh/configure/app/html/template.mdx +14 -0
  502. package/docs/zh/configure/app/html/title.mdx +22 -0
  503. package/docs/zh/configure/app/output/asset-prefix.mdx +18 -0
  504. package/docs/zh/configure/app/output/assets-retry.mdx +81 -0
  505. package/docs/zh/configure/app/output/charset.mdx +14 -0
  506. package/docs/zh/configure/app/output/clean-dist-path.mdx +20 -0
  507. package/docs/zh/configure/app/output/convert-to-rem.mdx +84 -0
  508. package/docs/zh/configure/app/output/copy.mdx +14 -0
  509. package/docs/zh/configure/app/output/css-modules.mdx +52 -0
  510. package/docs/zh/configure/app/output/data-uri-limit.mdx +30 -0
  511. package/docs/zh/configure/app/output/disable-css-module-extension.mdx +59 -0
  512. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +45 -0
  513. package/docs/zh/configure/app/output/disable-svgr.mdx +21 -0
  514. package/docs/zh/configure/app/output/disable-ts-checker.mdx +53 -0
  515. package/docs/zh/configure/app/output/dist-path.mdx +50 -0
  516. package/docs/zh/configure/app/output/enable-asset-manifest.mdx +40 -0
  517. package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +32 -0
  518. package/docs/zh/configure/app/output/enable-inline-route-manifests.mdx +21 -0
  519. package/docs/zh/configure/app/output/externals.mdx +24 -0
  520. package/docs/zh/configure/app/output/filename-hash.mdx +14 -0
  521. package/docs/zh/configure/app/output/filename.mdx +62 -0
  522. package/docs/zh/configure/app/output/inject-styles.mdx +14 -0
  523. package/docs/zh/configure/app/output/inline-scripts.mdx +33 -0
  524. package/docs/zh/configure/app/output/inline-styles.mdx +33 -0
  525. package/docs/zh/configure/app/output/legal-comments.mdx +22 -0
  526. package/docs/zh/configure/app/output/minify.mdx +26 -0
  527. package/docs/zh/configure/app/output/override-browserslist.mdx +26 -0
  528. package/docs/zh/configure/app/output/polyfill.mdx +18 -0
  529. package/docs/zh/configure/app/output/source-map.mdx +38 -0
  530. package/docs/zh/configure/app/output/split-route-chunks.mdx +20 -0
  531. package/docs/zh/configure/app/output/ssg.mdx +84 -0
  532. package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
  533. package/docs/zh/configure/app/output/svg-default-export.mdx +34 -0
  534. package/docs/zh/configure/app/output/temp-dir.mdx +22 -0
  535. package/docs/zh/configure/app/performance/build-cache.mdx +43 -0
  536. package/docs/zh/configure/app/performance/chunk-split.mdx +44 -0
  537. package/docs/zh/configure/app/performance/dns-prefetch.mdx +19 -0
  538. package/docs/zh/configure/app/performance/preconnect.mdx +20 -0
  539. package/docs/zh/configure/app/performance/prefetch.mdx +25 -0
  540. package/docs/zh/configure/app/performance/preload.mdx +27 -0
  541. package/docs/zh/configure/app/performance/print-file-size.mdx +44 -0
  542. package/docs/zh/configure/app/performance/profile.mdx +14 -0
  543. package/docs/zh/configure/app/performance/remove-console.mdx +14 -0
  544. package/docs/zh/configure/app/performance/remove-moment-locale.mdx +14 -0
  545. package/docs/zh/configure/app/performance/rsdoctor.mdx +39 -0
  546. package/docs/zh/configure/app/plugins.mdx +59 -0
  547. package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
  548. package/docs/zh/configure/app/resolve/alias.mdx +13 -0
  549. package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
  550. package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
  551. package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
  552. package/docs/zh/configure/app/runtime/0-intro.mdx +58 -0
  553. package/docs/zh/configure/app/runtime/plugins.mdx +58 -0
  554. package/docs/zh/configure/app/runtime/router.mdx +39 -0
  555. package/docs/zh/configure/app/security/check-syntax.mdx +73 -0
  556. package/docs/zh/configure/app/security/nonce.mdx +19 -0
  557. package/docs/zh/configure/app/security/sri.mdx +24 -0
  558. package/docs/zh/configure/app/server/base-url.mdx +30 -0
  559. package/docs/zh/configure/app/server/port.mdx +23 -0
  560. package/docs/zh/configure/app/server/public-routes.mdx +26 -0
  561. package/docs/zh/configure/app/server/routes.mdx +90 -0
  562. package/docs/zh/configure/app/server/rsc.mdx +30 -0
  563. package/docs/zh/configure/app/server/ssr-by-entries.mdx +29 -0
  564. package/docs/zh/configure/app/server/ssr.mdx +85 -0
  565. package/docs/zh/configure/app/server/tsconfig-path.mdx +63 -0
  566. package/docs/zh/configure/app/source/alias-strategy.mdx +18 -0
  567. package/docs/zh/configure/app/source/alias.mdx +27 -0
  568. package/docs/zh/configure/app/source/config-dir.mdx +24 -0
  569. package/docs/zh/configure/app/source/decorators.mdx +27 -0
  570. package/docs/zh/configure/app/source/define.mdx +20 -0
  571. package/docs/zh/configure/app/source/disable-default-entries.mdx +32 -0
  572. package/docs/zh/configure/app/source/enable-async-entry.mdx +54 -0
  573. package/docs/zh/configure/app/source/enable-async-pre-entry.mdx +77 -0
  574. package/docs/zh/configure/app/source/entries-dir.mdx +39 -0
  575. package/docs/zh/configure/app/source/entries.mdx +185 -0
  576. package/docs/zh/configure/app/source/exclude.mdx +14 -0
  577. package/docs/zh/configure/app/source/global-vars.mdx +109 -0
  578. package/docs/zh/configure/app/source/include.mdx +40 -0
  579. package/docs/zh/configure/app/source/main-entry-name.mdx +28 -0
  580. package/docs/zh/configure/app/source/pre-entry.mdx +14 -0
  581. package/docs/zh/configure/app/source/transform-import.mdx +31 -0
  582. package/docs/zh/configure/app/split-chunks.mdx +17 -0
  583. package/docs/zh/configure/app/tools/autoprefixer.mdx +48 -0
  584. package/docs/zh/configure/app/tools/bundler-chain.mdx +33 -0
  585. package/docs/zh/configure/app/tools/css-extract.mdx +34 -0
  586. package/docs/zh/configure/app/tools/css-loader.mdx +21 -0
  587. package/docs/zh/configure/app/tools/dev-server.mdx +117 -0
  588. package/docs/zh/configure/app/tools/html-plugin.mdx +45 -0
  589. package/docs/zh/configure/app/tools/less.mdx +86 -0
  590. package/docs/zh/configure/app/tools/lightningcss-loader.mdx +39 -0
  591. package/docs/zh/configure/app/tools/minify-css.mdx +57 -0
  592. package/docs/zh/configure/app/tools/postcss.mdx +39 -0
  593. package/docs/zh/configure/app/tools/rspack.mdx +14 -0
  594. package/docs/zh/configure/app/tools/sass.mdx +80 -0
  595. package/docs/zh/configure/app/tools/style-loader.mdx +14 -0
  596. package/docs/zh/configure/app/tools/swc.mdx +69 -0
  597. package/docs/zh/configure/app/tools/ts-checker.mdx +56 -0
  598. package/docs/zh/configure/app/usage.mdx +276 -0
  599. package/docs/zh/guides/_meta.json +37 -0
  600. package/docs/zh/guides/advanced-features/_meta.json +32 -0
  601. package/docs/zh/guides/advanced-features/bff/_meta.json +10 -0
  602. package/docs/zh/guides/advanced-features/bff/cross-project.mdx +112 -0
  603. package/docs/zh/guides/advanced-features/bff/data-platform.mdx +118 -0
  604. package/docs/zh/guides/advanced-features/bff/extend-server.mdx +125 -0
  605. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +118 -0
  606. package/docs/zh/guides/advanced-features/bff/function.mdx +262 -0
  607. package/docs/zh/guides/advanced-features/bff/operators.mdx +629 -0
  608. package/docs/zh/guides/advanced-features/bff/sdk.mdx +117 -0
  609. package/docs/zh/guides/advanced-features/bff/upload.mdx +7 -0
  610. package/docs/zh/guides/advanced-features/bff.mdx +21 -0
  611. package/docs/zh/guides/advanced-features/build-performance.mdx +134 -0
  612. package/docs/zh/guides/advanced-features/compatibility.mdx +80 -0
  613. package/docs/zh/guides/advanced-features/international/_meta.json +10 -0
  614. package/docs/zh/guides/advanced-features/international/advanced.mdx +132 -0
  615. package/docs/zh/guides/advanced-features/international/api.mdx +234 -0
  616. package/docs/zh/guides/advanced-features/international/best-practices.mdx +290 -0
  617. package/docs/zh/guides/advanced-features/international/configuration.mdx +219 -0
  618. package/docs/zh/guides/advanced-features/international/locale-detection.mdx +130 -0
  619. package/docs/zh/guides/advanced-features/international/quick-start.mdx +112 -0
  620. package/docs/zh/guides/advanced-features/international/resource-loading.mdx +155 -0
  621. package/docs/zh/guides/advanced-features/international/routing.mdx +134 -0
  622. package/docs/zh/guides/advanced-features/international.mdx +29 -0
  623. package/docs/zh/guides/advanced-features/low-level.mdx +48 -0
  624. package/docs/zh/guides/advanced-features/page-performance/_meta.json +1 -0
  625. package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +81 -0
  626. package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +162 -0
  627. package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +101 -0
  628. package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +54 -0
  629. package/docs/zh/guides/advanced-features/server-monitor/_meta.json +1 -0
  630. package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +21 -0
  631. package/docs/zh/guides/advanced-features/server-monitor/metrics.mdx +42 -0
  632. package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +240 -0
  633. package/docs/zh/guides/advanced-features/source-build.mdx +168 -0
  634. package/docs/zh/guides/advanced-features/web-server.mdx +281 -0
  635. package/docs/zh/guides/basic-features/_meta.json +49 -0
  636. package/docs/zh/guides/basic-features/alias.mdx +100 -0
  637. package/docs/zh/guides/basic-features/css/_meta.json +1 -0
  638. package/docs/zh/guides/basic-features/css/css-in-js.mdx +69 -0
  639. package/docs/zh/guides/basic-features/css/css-modules.mdx +218 -0
  640. package/docs/zh/guides/basic-features/css/css.mdx +31 -0
  641. package/docs/zh/guides/basic-features/css/tailwindcss.mdx +27 -0
  642. package/docs/zh/guides/basic-features/data/_meta.json +1 -0
  643. package/docs/zh/guides/basic-features/data/data-cache.mdx +498 -0
  644. package/docs/zh/guides/basic-features/data/data-fetch.mdx +421 -0
  645. package/docs/zh/guides/basic-features/data/data-write.mdx +234 -0
  646. package/docs/zh/guides/basic-features/debug/_meta.json +1 -0
  647. package/docs/zh/guides/basic-features/debug/mock.mdx +102 -0
  648. package/docs/zh/guides/basic-features/debug/proxy.mdx +25 -0
  649. package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +48 -0
  650. package/docs/zh/guides/basic-features/debug/using-storybook.mdx +92 -0
  651. package/docs/zh/guides/basic-features/deploy.mdx +432 -0
  652. package/docs/zh/guides/basic-features/env-vars.mdx +180 -0
  653. package/docs/zh/guides/basic-features/html.mdx +262 -0
  654. package/docs/zh/guides/basic-features/output-files.mdx +145 -0
  655. package/docs/zh/guides/basic-features/render/_meta.json +10 -0
  656. package/docs/zh/guides/basic-features/render/before-render.mdx +108 -0
  657. package/docs/zh/guides/basic-features/render/overview.mdx +53 -0
  658. package/docs/zh/guides/basic-features/render/rsc.mdx +619 -0
  659. package/docs/zh/guides/basic-features/render/ssg.mdx +168 -0
  660. package/docs/zh/guides/basic-features/render/ssr-cache.mdx +205 -0
  661. package/docs/zh/guides/basic-features/render/ssr.mdx +334 -0
  662. package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +276 -0
  663. package/docs/zh/guides/basic-features/render/tanstack-rsc.mdx +226 -0
  664. package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
  665. package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
  666. package/docs/zh/guides/basic-features/routes/routes.mdx +521 -0
  667. package/docs/zh/guides/basic-features/static-assets/_meta.json +1 -0
  668. package/docs/zh/guides/basic-features/static-assets/json-files.mdx +124 -0
  669. package/docs/zh/guides/basic-features/static-assets/svg-assets.mdx +174 -0
  670. package/docs/zh/guides/basic-features/static-assets/wasm-assets.mdx +66 -0
  671. package/docs/zh/guides/basic-features/static-assets.mdx +160 -0
  672. package/docs/zh/guides/basic-features/testing/_meta.json +1 -0
  673. package/docs/zh/guides/basic-features/testing/cypress.mdx +95 -0
  674. package/docs/zh/guides/basic-features/testing/jest.mdx +148 -0
  675. package/docs/zh/guides/basic-features/testing/playwright.mdx +112 -0
  676. package/docs/zh/guides/basic-features/testing/rstest.mdx +163 -0
  677. package/docs/zh/guides/basic-features/testing/vitest.mdx +100 -0
  678. package/docs/zh/guides/concept/_meta.json +1 -0
  679. package/docs/zh/guides/concept/builder.mdx +60 -0
  680. package/docs/zh/guides/concept/entries.mdx +323 -0
  681. package/docs/zh/guides/concept/server.mdx +35 -0
  682. package/docs/zh/guides/get-started/_meta.json +8 -0
  683. package/docs/zh/guides/get-started/glossary.mdx +63 -0
  684. package/docs/zh/guides/get-started/introduction.mdx +45 -0
  685. package/docs/zh/guides/get-started/quick-start.mdx +90 -0
  686. package/docs/zh/guides/get-started/tech-stack.mdx +91 -0
  687. package/docs/zh/guides/get-started/ultramodern.mdx +80 -0
  688. package/docs/zh/guides/get-started/upgrade.mdx +114 -0
  689. package/docs/zh/guides/topic-detail/_meta.json +8 -0
  690. package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -0
  691. package/docs/zh/guides/topic-detail/module-federation/application.mdx +117 -0
  692. package/docs/zh/guides/topic-detail/module-federation/deploy.mdx +104 -0
  693. package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
  694. package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +35 -0
  695. package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +168 -0
  696. package/docs/zh/guides/topic-detail/module-federation/usage.mdx +200 -0
  697. package/docs/zh/guides/troubleshooting/_meta.json +1 -0
  698. package/docs/zh/guides/troubleshooting/builder.mdx +134 -0
  699. package/docs/zh/guides/troubleshooting/cli.mdx +39 -0
  700. package/docs/zh/guides/troubleshooting/dependencies.mdx +123 -0
  701. package/docs/zh/guides/troubleshooting/hmr.mdx +148 -0
  702. package/docs/zh/guides/upgrade/_meta.json +1 -0
  703. package/docs/zh/guides/upgrade/config.mdx +953 -0
  704. package/docs/zh/guides/upgrade/entry.mdx +463 -0
  705. package/docs/zh/guides/upgrade/other.md +190 -0
  706. package/docs/zh/guides/upgrade/overview.mdx +36 -0
  707. package/docs/zh/guides/upgrade/tailwindcss.mdx +92 -0
  708. package/docs/zh/guides/upgrade/web-server.md +111 -0
  709. package/docs/zh/index.md +4 -0
  710. package/docs/zh/plugin/_meta.json +25 -0
  711. package/docs/zh/plugin/cli-plugins/_meta.json +1 -0
  712. package/docs/zh/plugin/cli-plugins/api.mdx +569 -0
  713. package/docs/zh/plugin/cli-plugins/life-cycle.mdx +135 -0
  714. package/docs/zh/plugin/introduction.mdx +153 -0
  715. package/docs/zh/plugin/official/_meta.json +7 -0
  716. package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -0
  717. package/docs/zh/plugin/official/cli-plugins/plugin-bff.mdx +5 -0
  718. package/docs/zh/plugin/official/cli-plugins/plugin-ssg.mdx +5 -0
  719. package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  720. package/docs/zh/plugin/official/cli-plugins.mdx +4 -0
  721. package/docs/zh/plugin/plugin-system.mdx +231 -0
  722. package/docs/zh/plugin/runtime-plugins/_meta.json +1 -0
  723. package/docs/zh/plugin/runtime-plugins/api.mdx +193 -0
  724. package/docs/zh/plugin/runtime-plugins/life-cycle.mdx +29 -0
  725. package/docs/zh/plugin/server-plugins/_meta.json +1 -0
  726. package/docs/zh/plugin/server-plugins/api.mdx +212 -0
  727. package/docs/zh/plugin/server-plugins/life-cycle.mdx +43 -0
  728. package/docs/zh/tutorials/_meta.json +7 -0
  729. package/docs/zh/tutorials/examples/csr-auth.mdx +31 -0
  730. package/docs/zh/tutorials/foundations/introduction.mdx +22 -0
  731. package/i18n.json +142 -0
  732. package/main-doc/docs/en/guides/get-started/ultramodern.mdx +320 -0
  733. package/main-doc/docs/zh/guides/get-started/ultramodern.mdx +304 -0
  734. package/package.json +52 -0
  735. package/rspress.config.ts +153 -0
  736. package/src/components/ContentCard/index.module.scss +65 -0
  737. package/src/components/ContentCard/index.tsx +24 -0
  738. package/src/components/FeatureLayout/index.module.css +8 -0
  739. package/src/components/FeatureLayout/index.tsx +8 -0
  740. package/src/components/Footer/index.tsx +118 -0
  741. package/src/components/Footer/styles.module.scss +49 -0
  742. package/src/components/FrameworkCode/index.tsx +605 -0
  743. package/src/components/ListCard/index.module.css +57 -0
  744. package/src/components/ListCard/index.tsx +26 -0
  745. package/src/components/Mermaid/index.tsx +64 -0
  746. package/src/components/Mermaid/style.scss +221 -0
  747. package/src/components/RandomMemberList/index.module.scss +35 -0
  748. package/src/components/RandomMemberList/index.tsx +122 -0
  749. package/src/components/RsbuildLink/index.tsx +19 -0
  750. package/src/components/Sandpack/index.css +10 -0
  751. package/src/components/Sandpack/index.tsx +22 -0
  752. package/src/components/SecondaryTitle/index.module.css +14 -0
  753. package/src/components/SecondaryTitle/index.tsx +15 -0
  754. package/src/components/ShowcaseList/index.module.scss +80 -0
  755. package/src/components/ShowcaseList/index.tsx +39 -0
  756. package/src/components/ShowcaseList/useShowcases.ts +101 -0
  757. package/src/components/SolutionCards/index.module.scss +73 -0
  758. package/src/components/SolutionCards/index.tsx +30 -0
  759. package/src/custom.scss +15 -0
  760. package/src/global.d.ts +28 -0
  761. package/src/i18n/enUS.ts +54 -0
  762. package/src/i18n/index.ts +18 -0
  763. package/src/i18n/zhCN.ts +54 -0
  764. package/src/index.ts +5 -0
  765. package/src/pages/index.module.scss +349 -0
  766. package/src/pages/index.tsx +133 -0
  767. package/src/sandbox/csr-auth/src/routes/Auth-tsx.txt +74 -0
  768. package/src/sandbox/csr-auth/src/routes/fakeAuth-ts.txt +16 -0
  769. package/src/sandbox/csr-auth/src/routes/layout-tsx.txt +21 -0
  770. package/src/sandbox/csr-auth/src/routes/login/page-tsx.txt +40 -0
  771. package/src/sandbox/csr-auth/src/routes/page-tsx.txt +17 -0
  772. package/src/sandbox/csr-auth/src/routes/protected/page-tsx.txt +11 -0
  773. package/static/img/favicon.ico +0 -0
  774. package/static/img/features/ai.svg +1 -0
  775. package/static/img/features/api.svg +1 -0
  776. package/static/img/features/app.svg +1 -0
  777. package/static/img/features/blocks.svg +1 -0
  778. package/static/img/features/browser.svg +12 -0
  779. package/static/img/features/cloud.svg +1 -0
  780. package/static/img/features/coding-backend.svg +1 -0
  781. package/static/img/features/compiler.svg +1 -0
  782. package/static/img/features/css-file.svg +1 -0
  783. package/static/img/features/customize.svg +1 -0
  784. package/static/img/features/developer.svg +1 -0
  785. package/static/img/features/dynamic.svg +1 -0
  786. package/static/img/features/editor.svg +1 -0
  787. package/static/img/features/framework-config.svg +1 -0
  788. package/static/img/features/framework.svg +1 -0
  789. package/static/img/features/frameworks.svg +1 -0
  790. package/static/img/features/html.svg +1 -0
  791. package/static/img/features/icon2.svg +1 -0
  792. package/static/img/features/javascript.svg +1 -0
  793. package/static/img/features/monorepo.svg +1 -0
  794. package/static/img/features/product.svg +1 -0
  795. package/static/img/features/server-network.svg +1 -0
  796. package/static/img/features/serverless.svg +1 -0
  797. package/static/img/features/test.svg +1 -0
  798. package/static/img/features/trinity.svg +1 -0
  799. package/static/img/features/unity.svg +1 -0
  800. package/static/img/features/url.svg +1 -0
  801. package/static/img/features/visual.svg +1 -0
  802. package/static/img/features/web-server.svg +1 -0
@@ -0,0 +1,168 @@
1
+ # 服务端渲染
2
+
3
+ `@module-federation/modern-js-v3` 提供了非常强大的能力,开发者可以非常方便的在 Modern.js 应用中,组合使用 Module Federation 和服务端渲染(SSR)的能力。
4
+
5
+ ## 开启 SSR
6
+
7
+ 我们以 [使用模块联邦](/guides/topic-detail/module-federation/usage) 创建的应用为例,只需要在生产者和消费者上,都添加 `server.ssr` 配置即可:
8
+
9
+ ```ts title="modern.config.ts"
10
+ import { appTools, defineConfig } from '@modern-js/app-tools';
11
+
12
+ export default defineConfig({
13
+ server: {
14
+ ssr: {
15
+ mode: 'stream',
16
+ },
17
+ },
18
+ });
19
+ ```
20
+
21
+ 为更好的性能体验,我们仅支持 Streaming SSR 情况使用这种能力组合。
22
+
23
+ :::warning
24
+ 应用级别模块(使用 `createBridgeComponent` 和 `createRemoteAppComponent` 的模块)在 SSR 场景下采用**分阶段稳定性契约**。
25
+
26
+ 请在 host 和 remote 两侧都显式开启:
27
+
28
+ ```ts title="modern.config.ts"
29
+ export default defineConfig({
30
+ server: {
31
+ ssr: {
32
+ mode: 'stream',
33
+ moduleFederationAppSSR: true,
34
+ },
35
+ },
36
+ });
37
+ ```
38
+
39
+ 建议在生产环境保留远程加载失败的 fallback 边界,并在日志 / 监控中跟踪 fallback 标记。
40
+ :::
41
+
42
+ ## Node SSR 打包兼容性
43
+
44
+ 当开启 Module Federation 并同时开启 `server.ssr` 时,Modern.js 会自动将 Node SSR 构建切换到 Module Federation 兼容模式:
45
+
46
+ - `target: 'async-node'`
47
+ - `output.module: false`
48
+ - `output.chunkFormat: 'commonjs'`
49
+ - `output.chunkLoading: 'async-node'`
50
+ - `output.library.type: 'commonjs-module'`
51
+
52
+ 这样可以避免 ESM 服务端产物与 `@module-federation/node` 运行时之间的兼容性问题,并保证 host / remote 在 SSR 与 SSG 场景下的 hydration 行为一致。
53
+
54
+ ## Battle-Tested 上线检查清单
55
+
56
+ 在扩大到生产全量流量前,建议覆盖以下场景:
57
+
58
+ 1. Host 与全部 remote 统一使用 `server.ssr.mode: 'stream'` 和同一 MF SSR 契约开关。
59
+ 2. `dev` / `build` / `serve` 三种模式都验证通过 happy-path SSR。
60
+ 3. 远程不可用场景有明确 fallback 边界,且不会触发服务端崩溃。
61
+ 4. 数据获取 timeout 与 contract-error 场景都有确定性降级 UI。
62
+ 5. Host/remote 边界上的 trace 与 telemetry 标记可观测。
63
+ 6. 灰度发布采用渐进放量并配置明确回滚条件。
64
+
65
+ ## 示例上线场景
66
+
67
+ 1. 基线启用(host + remote):
68
+ - host 与 remote 均配置 `server.ssr.mode: 'stream'` 和 `moduleFederationAppSSR: true`。
69
+ - 验证 SSR HTML 包含 remote shell 标记,且没有 fallback 标记。
70
+ 2. remote 不可用降级:
71
+ - 保持 host 开关开启,停止一个 remote 服务后访问对应远程路由。
72
+ - 验证响应仍为 `200`、fallback 边界正确渲染、服务端不崩溃。
73
+ 3. timeout 与 contract-error 演练:
74
+ - 在 CI 注入远程/数据延迟响应以及异常 payload。
75
+ - 验证降级 UI 可确定复现,并产出匹配的 telemetry reason code。
76
+
77
+ ## 数据获取
78
+
79
+ :::tip
80
+ 该能力仍处于分阶段推进中。建议在 CI 中执行上面的检查清单后再扩大流量。
81
+ :::
82
+
83
+ Module Federation 在新版本中支持了[数据获取](https://module-federation.io/zh/guide/basic/data-fetch/index.html#%E7%AE%80%E4%BB%8B)的能力。每个生产者文件都可以有一个对应的数据获取文件,文件名格式为 `[name].data.ts`。
84
+
85
+ 在 Modern.js 中,数据获取可以配合 SSR 使用。我们以前面章节的 Demo 为例子,创建一个数据获取文件:
86
+
87
+ ```ts title="src/components/Button.data.ts"
88
+ import type { DataFetchParams } from '@module-federation/modern-js-v3/react';
89
+
90
+ export type Data = {
91
+ data: string;
92
+ };
93
+
94
+ export const fetchData = async (params: DataFetchParams): Promise<Data> => {
95
+ return new Promise(resolve => {
96
+ setTimeout(() => {
97
+ resolve({
98
+ data: `data: ${new Date()}`,
99
+ });
100
+ }, 1000);
101
+ });
102
+ };
103
+ ```
104
+
105
+ 在 Button 中,我们从 `Props` 中获取到数据:
106
+
107
+ ```ts title="src/components/Button.tsx"
108
+ import React from 'react';
109
+ import type { Data } from './Button.data';
110
+
111
+ export const Button = (props: { mfData: Data }) => {
112
+ const { mfData } = props;
113
+ return (
114
+ <button type="button" className="test">
115
+ Remote Button {mfData?.data}
116
+ </button>
117
+ );
118
+ };
119
+ ```
120
+
121
+ ## 消费组件
122
+
123
+ 消费者必须使用 [`createLazyComponent`](https://module-federation.io/zh/practice/bridge/react-bridge/load-component.html#createlazycomponent-api-%E5%8F%82%E8%80%83) 的方式加载远程组件,并指定 export 为 'default'。
124
+
125
+ ```tsx title="src/routes/page.tsx"
126
+ import type { JSX } from 'react';
127
+ import { getInstance } from '@module-federation/modern-js-v3/runtime';
128
+ import {
129
+ ERROR_TYPE,
130
+ lazyLoadComponentPlugin,
131
+ } from '@module-federation/modern-js-v3/react';
132
+
133
+ const instance = getInstance();
134
+ instance!.registerPlugins([lazyLoadComponentPlugin()]);
135
+
136
+ const Button = instance!.createLazyComponent({
137
+ loader: () => {
138
+ return import('remote/Button');
139
+ },
140
+ loading: 'loading...',
141
+ export: 'Button', // 这里需要配置为远程组件的 export 名称
142
+ fallback: ({ error, errorType, dataFetchMapKey }) => {
143
+ console.error(error);
144
+ if (errorType === ERROR_TYPE.LOAD_REMOTE) {
145
+ return <div>load remote failed</div>;
146
+ }
147
+ if (errorType === ERROR_TYPE.DATA_FETCH) {
148
+ return (
149
+ <div>
150
+ data fetch failed, the dataFetchMapKey key is: {dataFetchMapKey}
151
+ </div>
152
+ );
153
+ }
154
+ return <div>error type is unknown</div>;
155
+ },
156
+ });
157
+
158
+ const Index = (): JSX.Element => {
159
+ return (
160
+ <div>
161
+ <h1>Basic usage with data fetch</h1>
162
+ <Button />
163
+ </div>
164
+ );
165
+ };
166
+
167
+ export default Index;
168
+ ```
@@ -0,0 +1,200 @@
1
+ # 开始使用
2
+
3
+ 在 Modern.js 中使用 Module Federation 我们推荐使用官方插件 `@module-federation/modern-js-v3`。
4
+
5
+ 本章节将会介绍如何通过官方插件搭含生产者应用与消费者应用,我们首先根据 [Modern.js 快速上手](/guides/get-started/quick-start) 创建两个应用。
6
+
7
+ ## 安装插件
8
+
9
+ 完成应用创建后,我们分别为两个项目安装插件:
10
+
11
+ import { PackageManagerTabs } from '@theme';
12
+
13
+ <PackageManagerTabs command="add @module-federation/modern-js-v3" />
14
+
15
+ ## 注册插件
16
+
17
+ 安装插件后,你需要在 `modern.config.js` 中注册插件:
18
+
19
+ ```ts
20
+ import { appTools, defineConfig } from '@modern-js/app-tools';
21
+ import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
22
+
23
+ export default defineConfig({
24
+ plugins: [appTools(), moduleFederationPlugin()],
25
+ });
26
+ ```
27
+
28
+ ## 生产者导出模块
29
+
30
+ 接下来,我们先修改生产者的代码,导出 Module Federation 模块。
31
+
32
+ 我们创建 `src/components/Button.tsx` 文件,导出一个 Button 组件:
33
+
34
+ ```tsx title="src/components/Button.tsx"
35
+ import React from 'react';
36
+
37
+ export const Button = () => {
38
+ return <button type="button">Remote Button</button>;
39
+ };
40
+ ```
41
+
42
+ 随后,在项目根目录添加 `module-federation.config.ts`,配置 Module Federation 模块的名称、共享依赖和导出内容:
43
+
44
+ ```ts title="module-federation.config.ts"
45
+ import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
46
+
47
+ export default createModuleFederationConfig({
48
+ name: 'remote',
49
+ manifest: {
50
+ filePath: 'static',
51
+ },
52
+ filename: 'static/remoteEntry.js',
53
+ exposes: {
54
+ './Button': './src/components/Button.tsx',
55
+ },
56
+ shared: {
57
+ react: { singleton: true },
58
+ 'react-dom': { singleton: true },
59
+ },
60
+ });
61
+ ```
62
+
63
+ :::tip
64
+ 在上述代码块中,我们为 Module Federation 导出的 `manifest` 和 `remoteEntry.js` 都设置了 `static` 前缀,这是因为 Modern.js 要求将所有需要暴露的资源都放在 `static/` 目录下,Modern.js 的服务器在生产环境时也只会托管 `static/` 目录。
65
+ :::
66
+
67
+ 另外,我们还需要修改 `modern.config.ts`,为生产者提供一个开发环境的端口,让消费者可以通过此端口访问生产者的资源:
68
+
69
+ ```ts title="modern.config.ts"
70
+ import { appTools, defineConfig } from '@modern-js/app-tools';
71
+ import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
72
+
73
+ export default defineConfig({
74
+ server: {
75
+ port: 3051,
76
+ },
77
+ plugins: [appTools(), moduleFederationPlugin()],
78
+ });
79
+ ```
80
+
81
+ ## 消费者使用模块
82
+
83
+ 现在,我们修改消费者的代码,使用生产者导出的模块。
84
+
85
+ 在项目根目录添加 `module-federation.config.ts`,配置 Module Federation 模块的名称、共享依赖和使用的远程模块:
86
+
87
+ ```ts title="module-federation.config.ts"
88
+ import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
89
+
90
+ export default createModuleFederationConfig({
91
+ name: 'host',
92
+ remotes: {
93
+ remote: 'remote@http://localhost:3051/static/mf-manifest.json',
94
+ },
95
+ shared: {
96
+ react: { singleton: true },
97
+ 'react-dom': { singleton: true },
98
+ },
99
+ });
100
+ ```
101
+
102
+ `mf-manifest.json` 是生产者在打包后产出的文件,包含了生产者导出的所有模块信息。
103
+
104
+ 我们创建新的路由文件 `src/routes/remote/page.tsx`,引入生产者模块:
105
+
106
+ ```tsx title="src/routes/remote/page.tsx"
107
+ import React, { Suspense, type JSX } from 'react';
108
+ import { Button } from 'remote/Button';
109
+
110
+ const Index = (): JSX.Element => {
111
+ return (
112
+ <div>
113
+ <Suspense fallback={<div>Loading...</div>}>
114
+ <Button />
115
+ </Suspense>
116
+ </div>
117
+ );
118
+ };
119
+
120
+ export default Index;
121
+ ```
122
+
123
+ 此时 `remote/Button` 引入会出现类型错误,这是因为本地没有远程模块的类型。Module Federation 2.0 提供了 [类型提示](https://module-federation.io/zh/guide/basic/type-prompt.html) 的能力,会在生产者构建时自动生成远程模块的类型定义,在消费者构建时自动下载。
124
+
125
+ 为此我们需要在 `tsconfig.json` 中添加新的 `path`,保证类型生效:
126
+
127
+ ```json title="tsconfig.json"
128
+ {
129
+ "compilerOptions": {
130
+ "paths": {
131
+ "*": ["./@mf-types/*"]
132
+ }
133
+ }
134
+ }
135
+ ```
136
+
137
+ :::tip
138
+ 在消费者中,我们通过 `remote/Button` 来引用远程模块。这里简单介绍下这个路径具体代表了什么,可以先将它抽象成 `[remoteAlias]/[remoteExpose]`。
139
+
140
+ 第一段 `remoteAlias` 是生产者在消费者中的别名,它是消费者 `module-federation.config.ts` 中配置的 `remotes` 字段的 `key`:
141
+
142
+ ```ts
143
+ {
144
+ remotes: {
145
+ [remoteAlias]: '[remoteModuleName]@[URL_ADDRESS]',
146
+ }
147
+ }
148
+ ```
149
+
150
+ 这里我们也将远程地址抽象为 `[remoteModuleName]@[URL_ADDRESS]`,`@` 前的部分必须对应生产者的模块名。
151
+
152
+ 第二段 `remoteExpose` 是生产者在 `module-federation.config.ts` 中配置的 `exposes` 字段的 `key`。
153
+ :::
154
+
155
+ ## 启动应用
156
+
157
+ 现在,生产者应用和消费者应用都已经搭建完毕,我们可以在本地运行 `modern dev` 启动两个应用。
158
+
159
+ 启动后,消费者中对生产者模块的引入,不会再出现抛错,类型已经下载到消费者应用中。
160
+
161
+ :::note
162
+ 修改生产者代码后,消费者会自动拉取生产者的类型。
163
+ :::
164
+
165
+ 访问 `http://localhost:8080/remote`,可以看到页面中已经包含了生产者的远程模块 `Button` 组件。
166
+
167
+ 我们也可以在本地执行 `modern serve` 来模拟生产环境。
168
+
169
+ 因为 Module Federation 插件会自动读取 Modern.js 的 `output.assetPrefix` 配置作为远程模块的访问地址,而该值在生产环境下构建后默认是 `/`。如果不做特殊处理,消费者将从自己的域名下拉取远程模块的入口文件。我们可以添加如下配置:
170
+
171
+ ```ts
172
+ import { appTools, defineConfig } from '@modern-js/app-tools';
173
+ import { moduleFederationPlugin } from '@module-federation/modern-js-v3';
174
+
175
+ // https://modernjs.dev/en/configure/app/usage
176
+ export default defineConfig({
177
+ server: {
178
+ port: 3051,
179
+ },
180
+ output: {
181
+ // Now this configuration is only used in the local when you run modern serve command.
182
+ // If you want to deploy the application to the platform, use your own domain name.
183
+ // Module federation will automatically write it to mf-manifest.json, which influences consumer to fetch remoteEntry.js.
184
+ assetPrefix: 'http://127.0.0.1:3051',
185
+ },
186
+ plugins: [appTools(), moduleFederationPlugin()],
187
+ });
188
+ ```
189
+
190
+ 现在,在生产者中运行 `modern build && MODERN_MF_AUTO_CORS=true modern serve`,在消费者中运行 `modern build && modern serve`,即可在本地模拟生产环境,访问到远程模块。
191
+
192
+ :::tip
193
+ 在使用 `modern serve` 命令时,需要在启动生产者项目时携带 `MODERN_MF_AUTO_CORS=true` 环境变量,以自动处理跨域问题,确保消费者可以正常访问生产者的远程模块资源。
194
+ :::
195
+
196
+ 上述用例可以参考:[Modern.js & Module Federation 基础用法示例](https://github.com/web-infra-dev/modern-js-examples/tree/main/examples/module-federation/base)。
197
+
198
+ ## 相关文档
199
+
200
+ - [Module Federation 官方文档](https://module-federation.io/zh/guide/framework/modernjs.html)
@@ -0,0 +1 @@
1
+ ["dependencies", "cli", "builder", "hmr"]
@@ -0,0 +1,134 @@
1
+ ---
2
+ sidebar_position: 3
3
+ ---
4
+
5
+ # 构建相关问题
6
+
7
+ 如果你遇到了构建相关的问题,可以参考当前文档进行排查。
8
+
9
+ ---
10
+
11
+ ### Rsbuild FAQ
12
+
13
+ Modern.js 内部基于 [Rsbuild](https://v2.rsbuild.rs/) 封装了自身的构建工具,因此你可以直接参考 Rsbuild 的 FAQ 文档:
14
+
15
+ - [Rsbuild - 功能类问题](https://v2.rsbuild.rs/zh/guide/faq/features)
16
+ - [Rsbuild - 异常类问题](https://v2.rsbuild.rs/zh/guide/faq/exceptions)
17
+ - [Rsbuild - 热更新问题](https://v2.rsbuild.rs/zh/guide/faq/hmr)
18
+
19
+ ---
20
+
21
+ ### 如何查看最终生成的 Rspack 配置?
22
+
23
+ Modern.js 提供 [inspect 命令](/apis/app/commands.html) 用于查看项目最终生成的 Modern.js 配置以及 Rspack 配置。
24
+
25
+ ```bash
26
+ ➜ npx modern inspect
27
+
28
+ Inspect config succeed, open following files to view the content:
29
+
30
+ - Rsbuild Config: /root/my-project/dist/rsbuild.config.mjs
31
+ - Rspack Config (web): /root/my-project/dist/rspack.config.web.mjs
32
+ ```
33
+
34
+ ### 在 Monorepo 中引用其他模块,代码没有被正确编译?
35
+
36
+ 出于编译性能的考虑,默认情况下,Modern.js 不会编译 `node_modules` 下的文件,也不会编译当前工程目录外部的文件。
37
+
38
+ 因此,当你引用其他子项目的源代码时,可能会遇到类似 `You may need an additional loader to handle the result of these loaders.` 的报错。
39
+
40
+ 这个问题有以下解决方法:
41
+
42
+ 1. 你可以开启源码构建模式来编译 monorepo 中的其他子项目,参考[「源码构建模式」](/guides/advanced-features/source-build.html)。
43
+ 2. 你可以添加 `source.include` 配置项,指定需要额外进行编译的目录或模块,参考 [source.include 用法介绍](/configure/app/source/include.html)。
44
+ 3. 你可以预先构建需要引用的子项目,生成对应的构建产物,并在当前项目引用构建产物,而不是引用源代码。
45
+
46
+ ---
47
+
48
+ ### 打开页面后报错,提示 exports is not defined?
49
+
50
+ 如果编译正常,但是打开页面后出现 `exports is not defined` 报错,通常是因为在项目中使用 Babel 编译了一个 CommonJS 模块,导致 Babel 出现异常。
51
+
52
+ 在正常情况下,Modern.js 是不会使用 Babel 来编译 CommonJS 模块的。如果项目中使用了 [source.include](/configure/app/source/include.html) 配置项,则可能会把一些 CommonJS 模块加入到 Babel 编译中。
53
+
54
+ 该问题有两种解决方法:
55
+
56
+ 1. 避免将 CommonJS 模块加入到 Babel 编译中。
57
+ 2. 将 Babel 的 `sourceType` 配置项设置为 `unambiguous`。将 `sourceType` 设置为 `unambiguous` 可能会产生一些其他影响,请参考 [Babel 官方文档](https://babeljs.io/docs/en/options#sourcetype)。
58
+
59
+ ---
60
+
61
+ ### 编译时报错 "Error: ES Modules may not assign module.exports or exports.\*, Use ESM export syntax"?
62
+
63
+ 如果编译时出现以下报错,通常也是因为在项目中使用 Babel 编译了一个 CommonJS 模块,解决方法与上述的 `exports is not defined` 问题一致。
64
+
65
+ ```bash
66
+ Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: 581
67
+ ```
68
+
69
+ 更多信息请参考 issue:[babel#12731](https://github.com/babel/babel/issues/12731)。
70
+
71
+ ---
72
+
73
+ ### 编译进度条卡死,但终端无 Error 日志?
74
+
75
+ 当编译进度条卡死,但终端无 Error 日志时,通常是因为编译过程中出现了异常。在某些情况下,当 Error 被构建工具或其他模块捕获后,错误日志不会被正确输出。最为常见的场景是 Babel 配置出现异常,抛出 Error 后被构建工具捕获,而构建工具在个别情况下吞掉了 Error。
76
+
77
+ **解决方法:**
78
+
79
+ 如果你修改 Babel 配置后出现此问题,建议检查是否有以下错误用法:
80
+
81
+ 1. 配置了一个不存在的 plugin 或 preset,可能是名称拼写错误,或是未正确安装。
82
+ 2. 是否配置了多个 babel-plugin-import,但是没有在数组的第三项声明每一个 babel-plugin-import 的名称。
83
+
84
+ ---
85
+
86
+ ### 从 lodash 中引用类型后出现编译报错?
87
+
88
+ 当你的项目中安装了 `@types/lodash` 包时,你可能会从 `lodash` 中引用一些类型,比如引用 `DebouncedFunc` 类型:
89
+
90
+ ```ts
91
+ import { debounce, DebouncedFunc } from 'lodash';
92
+ ```
93
+
94
+ 上述代码会在编译后产生如下报错:
95
+
96
+ ```bash
97
+ SyntaxError: /project/src/index.ts: The 'lodash' method `DebouncedFunc` is not a known module.
98
+ Please report bugs to https://github.com/lodash/babel-plugin-lodash/issues.
99
+ ```
100
+
101
+ 这个问题的原因是 Modern.js 默认开启了 [babel-plugin-lodash](https://github.com/lodash/babel-plugin-lodash) 插件来优化 lodash 产物体积,但 Babel 无法区别「值」和「类型」,导致编译后的代码出现异常。
102
+
103
+ 解决方法是使用 TypeScript 的 `import type` 语法,对 `DebouncedFunc` 类型进行显式声明:
104
+
105
+ ```ts
106
+ import { debounce } from 'lodash';
107
+ import type { DebouncedFunc } from 'lodash';
108
+ ```
109
+
110
+ :::tip
111
+ 在任意情况下,我们都推荐使用 `import type` 来引用类型,这对于编译器识别类型会有很大帮助。
112
+ :::
113
+
114
+ ---
115
+
116
+ ### 升级 Modern.js 版本后,检查出新的 TypeScript 类型错误?
117
+
118
+ Modern.js 优化了 Type Checker 的检查范围。在之前的版本中,Type Checker 只输出 src 目录的类型错误,导致其他目录的类型错误无法被正确输出。
119
+
120
+ 在新版本中,Modern.js 的 Type Checker 对齐了TS-Go native preview 的类型检查范围(即 tsconfig.json 的 `include` 和 `exclude` 字段定义的范围),能够完整输出项目中的类型错误。
121
+
122
+ 如果你希望保持之前的行为,只输出 src 目录的类型错误,可以添加以下配置:
123
+
124
+ ```ts title="modern.config.ts"
125
+ export default {
126
+ tools: {
127
+ tsChecker: {
128
+ issue: {
129
+ include: [{ file: '**/src/**/*' }],
130
+ },
131
+ },
132
+ },
133
+ };
134
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ sidebar_position: 2
3
+ ---
4
+
5
+ # 命令行问题
6
+
7
+ ### 使用 pnpm 时无法正确传递命令行参数?
8
+
9
+ 在使用 pnpm 调用 `package.json` 中的命令时,需要注意参数传递的方式:
10
+
11
+ - **如果需要传递参数至 pnpm**,需要将参数放到命令前。
12
+
13
+ 例如使用 pnpm `--filter` 参数执行 prepare 命令:
14
+
15
+ ```bash
16
+ pnpm run --filter "./packages/**" prepare
17
+ ```
18
+
19
+ - **如果需要传递参数至命令**,需要将参数放到命令后。
20
+
21
+ 例如,在如下 `package.json` 配置中:
22
+
23
+ ```json
24
+ {
25
+ "scripts": {
26
+ "command": "modern command"
27
+ }
28
+ }
29
+ ```
30
+
31
+ 执行 command 命令时携带参数方式为:
32
+
33
+ ```bash
34
+ pnpm run command --options
35
+ ```
36
+
37
+ :::tip
38
+ Modern.js 要求 Node.js >= 20.19.5,而 pnpm v6 不支持 Node.js 20,因此请使用 pnpm v7 或更高版本。
39
+ :::
@@ -0,0 +1,123 @@
1
+ ---
2
+ sidebar_position: 1
3
+ ---
4
+
5
+ # 依赖安装问题
6
+
7
+ ### 如何查看项目里某个依赖实际安装的版本?
8
+
9
+ 可以使用包管理器自带的 `ls` 命令来查看项目里依赖的版本。
10
+
11
+ 下面是一些基本的示例,详细用法请查看各个包管理器的文档。
12
+
13
+ **npm / yarn**
14
+
15
+ 对于使用 npm 或 yarn 的项目,可以使用 `npm ls` 命令。
16
+
17
+ 比如执行 `npm ls @modern-js/plugin`,可以看到如下结果:
18
+
19
+ ```
20
+ project
21
+ └─┬ @modern-js/app-tools@x.y.z
22
+ └── @modern-js/plugin@x.y.z
23
+ ```
24
+
25
+ **pnpm**
26
+
27
+ 对于使用 pnpm 的项目,可以使用 `pnpm ls` 命令。
28
+
29
+ 比如执行 `pnpm ls @modern-js/plugin --depth Infinity`,可以看到如下结果:
30
+
31
+ ```
32
+ devDependencies:
33
+ @modern-js/app-tools x.y.z
34
+ └── @modern-js/plugin x.y.z
35
+ ```
36
+
37
+ ---
38
+
39
+ ### 安装依赖时提示 The engine "node" is incompatible?
40
+
41
+ 安装依赖时如果出现以下报错提示,说明当前环境使用的 Node.js 版本过低,需要升级 Node.js 到更高版本。
42
+
43
+ ```bash
44
+ The engine "node" is incompatible with this module.
45
+
46
+ Expected version ">=20.19.5". Got "16.20.1"
47
+ ```
48
+
49
+ Modern.js 要求 Node.js 版本 >= 20.19.5,我们强烈推荐使用最新的 LTS 版本(如 [Node.js 22 LTS](https://nodejs.org/))以获得最佳体验。
50
+
51
+ 如果当前环境的 Node.js 版本低于上述要求的版本,则可以使用 [nvm](https://github.com/nvm-sh/nvm) 或 [fnm](https://github.com/Schniz/fnm) 等工具进行版本切换。
52
+
53
+ 下面是使用 nvm 的示例:
54
+
55
+ ```bash
56
+ # 安装 Node.js 22 LTS
57
+ nvm install 22 --lts
58
+
59
+ # 切换到 Node.js 22
60
+ nvm use 22
61
+
62
+ # 将 Node.js 22 设置为默认版本
63
+ nvm alias default 22
64
+ ```
65
+
66
+ 在本地开发环境推荐使用 [fnm](https://github.com/Schniz/fnm),它的用法与 nvm 相似,但拥有比 nvm 更好的性能。
67
+
68
+ ---
69
+
70
+ ### 升级依赖后出现 ReactNode 类型错误?
71
+
72
+ 升级项目的依赖后,如果出现以下类型报错,说明项目中安装了错误的 `@types/react` 版本。
73
+
74
+ ```bash
75
+ The types returned by 'render()' are incompatible between these types.
76
+ Type 'React.ReactNode' is not assignable to type 'import("/node_modules/@types/react/index").ReactNode'.
77
+ Type '{}' is not assignable to type 'ReactNode'.
78
+ ```
79
+
80
+ 出现这个问题的原因是 React 18/19 与 React 16/17 中的 ReactNode 类型定义不同,如果项目中出现多个不同 `@types/react` 版本,就会出现 ReactNode 类型冲突,导致以上报错。
81
+
82
+ 解决方法为将项目中的 `@types/react` 和 `@types/react-dom` 锁定在统一的版本上,比如 `v19`。
83
+
84
+ ```json
85
+ {
86
+ "@types/react": "^19",
87
+ "@types/react-dom": "^19"
88
+ }
89
+ ```
90
+
91
+ 关于锁定依赖版本的方法,请参考 [锁定子依赖](/guides/get-started/upgrade.html#锁定子依赖)。
92
+
93
+ ---
94
+
95
+ ### 执行 pnpm install 之后,控制台出现 peer dependencies 相关 warning?
96
+
97
+ 出现该警告的原因是,某些三方 npm 包声明的 peer dependencies 版本范围与 Modern.js 中安装的版本范围不一致。
98
+
99
+ 绝大多数情况下,peer dependencies 的警告不会影响项目运行,不需要额外进行处理,请忽略相关 warning。
100
+
101
+ ---
102
+
103
+ ### Modern.js 框架最低支持的 React 版本是多少?
104
+
105
+ **Modern.js 框架要求使用的 React 版本为 >= 18.0.0**。
106
+
107
+ - **如果使用 Modern.js 的 runtime 能力**(包括 SSR、Streaming SSR、数据加载、路由等),必须使用 React 18 或更高版本。React 16 和 React 17 不再支持。
108
+ - **如果仅使用 Modern.js 的构建能力**(不使用 runtime),理论上可以使用 React 16 或 React 17,但强烈建议升级到 React 18 以上版本以获得最佳体验和完整功能支持。
109
+
110
+ ---
111
+
112
+ ### Modern.js 配置出现类型错误?
113
+
114
+ ```bash
115
+ Type 'CliPlugin<{}, {}, {}, {}>' is not assignable to type 'CliPlugin<any, {}, {}, {}>'.
116
+ Types of property 'setup' are incompatible.
117
+ ```
118
+
119
+ 当你在使用 Modern.js 框架时配置文件出现以上报错,可能是由于 Modern.js 相关包的版本号未统一导致。需要手动将所有 `@modern-js/**` 包的版本统一更新到相同版本。
120
+
121
+ 在 monorepo 中由于不同子项目所用的 Modern.js 框架版本不一致也可能出现以上问题。
122
+
123
+ 关于如何统一升级依赖版本,请参考[版本升级](/guides/get-started/upgrade)文档。