@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,259 @@
1
+ ---
2
+ sidebar_position: 9
3
+ ---
4
+
5
+ # HTML Template
6
+
7
+ Modern.js provides **JSX syntax** and **HTML(EJS) syntax** to customize the HTML template.
8
+
9
+ ## JSX Syntax
10
+
11
+ According to Modern.js conventions, you can create a `Document.tsx` file under `src/` or the entry directory and default export a component. The rendering result of this component can be used as the HTML template of the entry.
12
+
13
+ For example, consider the following directory structure:
14
+
15
+ ```bash
16
+ .
17
+ └── src
18
+ ├── Document.tsx
19
+ ├── entry-a
20
+ │ ├── Document.tsx
21
+ │ └── routes
22
+ ├── entry-b
23
+ │ └── routes
24
+ └── modern-app-env.d.ts
25
+ ```
26
+
27
+ `entry-a` will use the `Document.tsx` file under the current entry as the template. If there is no `Document.tsx` file under the current entry, like `entry-b`, it will look for the `Document.tsx` file under the root directory.
28
+
29
+ If not found, default template will be used.
30
+
31
+ :::tip
32
+ `Document.tsx` is compiled at build time by the Modern.js Document plugin using a dedicated Rspack child compiler targeting Node.js, and is rendered to a string with `renderToStaticMarkup` as the HTML template content, similar to [Static Site Generation](/guides/basic-features/render/ssg.html). The HTML template module is not part of the page bundler compilation, so React Hooks in the component will not run in the browser runtime, and non-JavaScript assets such as images cannot be resolved or imported.
33
+ :::
34
+
35
+ ### HTML Components
36
+
37
+ Modern.js provides some components for rendering pages to help developers generate templates. These components can be used from `@modern-js/runtime/document`:
38
+
39
+ ```tsx
40
+ import { Html, Body, Root, Head, Scripts } from '@modern-js/runtime/document';
41
+ ```
42
+
43
+ - `Html`: provide the ability of native HTML Element and render necessary components that the developer did not add by default. `<Head>` and `<Body>` must exist, and other components can be assembled as needed.
44
+
45
+ - `Body`: provide the ability of native Body Element and needs to contain the `<Root>` component internally. It also supports other elements as child elements at the same time, such as adding footers.
46
+
47
+ - `Root`: the root node `<div id='root'></div>` to be rendered. The default id of the root node is `id = 'root'`. You can set `props.rootId` to change the id attribute. Child components can be added and will be rendered in the HTML template. After React rendering is complete, it will be overwritten and is generally used to implement global Loading.
48
+
49
+ - `Head`: provide the ability of native Head Element and automatically fills in `<meta>` and `<Scripts>` components.
50
+
51
+ - `Scripts`: Used to control the placement of the `<script>` tags generated by the build. By default, they are placed within the `<Head>` component.
52
+
53
+ - `Comment`: retain user-written comments like `<!-- gateway -->` and outputs them to the rendered HTML.
54
+
55
+ ### Template Parameters
56
+
57
+ Because it is in JSX format, various variables can be used freely in the component to assign values to various custom components in `Document.tsx`.
58
+
59
+ Modern.js also provides `DocumentContext` to provide some configuration and environment parameters for easy access. The main parameters are:
60
+
61
+ - `processEnv`: provides the `process.env` during the build.
62
+ - `config`: the configuration of the Modern.js project. Currently, only the output configuration is exposed.
63
+ - `entryName`: the current entry name.
64
+ - `templateParams`: parameters of HTML template (compatible with traditional templates, so it's not recommended for use).
65
+
66
+ ### Basic Example
67
+
68
+ ```tsx
69
+ import React, { useContext } from 'react';
70
+ import {
71
+ Html,
72
+ Root,
73
+ Head,
74
+ Body,
75
+ Comment,
76
+ DocumentContext,
77
+ } from '@modern-js/runtime/document';
78
+
79
+ export default function Document(): React.ReactElement {
80
+ // the params provide by DocumentContext
81
+ const {
82
+ config: { output: htmlConfig },
83
+ entryName,
84
+ templateParams,
85
+ } = useContext(DocumentContext);
86
+
87
+ return (
88
+ <Html>
89
+ <Head>
90
+ <link href="https://modernjs.dev" />
91
+ <Comment>{'<!-- Need a Comment -->'}</Comment>
92
+ </Head>
93
+ <Body>
94
+ <Root rootId="root">
95
+ <h1 style={{ color: 'red' }}>Some Params: </h1>
96
+ <h2>entryName: {entryName}</h2>
97
+ <h2>title: {htmlConfig.title}</h2>
98
+ <h2>rootId: {templateParams.mountId}</h2>
99
+ </Root>
100
+ <h1>bottom</h1>
101
+ </Body>
102
+ </Html>
103
+ );
104
+ }
105
+ ```
106
+
107
+ The above JSX components will generate the following HTML template:
108
+
109
+ ```html
110
+ <!DOCTYPE html>
111
+ <html>
112
+ <head>
113
+ <meta charset="utf-8" />
114
+ <meta
115
+ name="viewport"
116
+ content="width=device-width, initial-scale=1.0, shrink-to-fit=no, viewport-fit=cover, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
117
+ />
118
+ <meta http-equiv="x-ua-compatible" content="ie=edge" />
119
+ <meta name="renderer" content="webkit" />
120
+ <meta name="layoutmode" content="standard" />
121
+ <meta name="imagemode" content="force" />
122
+ <meta name="wap-font-scale" content="no" />
123
+ <meta name="format-detection" content="telephone=no" />
124
+ <link rel="icon" href="/a.icon" />
125
+ <script defer src="/static/js/builder-runtime.js"></script>
126
+ <script defer src="/static/js/lib-react.js"></script>
127
+ <script defer src="/static/js/lib-polyfill.js"></script>
128
+ <script defer src="/static/js/lib-router.js"></script>
129
+ <script defer src="/static/js/main.js"></script>
130
+ <link href="https://modernjs.dev" />
131
+ <!-- Need a Comment -->
132
+ </head>
133
+
134
+ <body>
135
+ <div id="root">
136
+ <!--<?- html ?>-->
137
+ <h1 style="color:red">Some Params:</h1>
138
+ <h2>entryName: main</h2>
139
+ <h2>title:</h2>
140
+ <h2>rootId: root</h2>
141
+ </div>
142
+ <h1>bottom</h1>
143
+ <!--<?- chunksMap.js ?>-->
144
+ <!--<?- SSRDataScript ?>-->
145
+ </body>
146
+ </html>
147
+ ```
148
+
149
+ ### Scripts Component Example
150
+
151
+ You can use the `<Scripts>` component to insert the `<script>` tags generated by the build inside the `<body>` tag:
152
+
153
+ ```tsx
154
+ import React from 'react';
155
+ import { Html, Root, Head, Body, Scripts } from '@modern-js/runtime/document';
156
+
157
+ export default function Document(): React.ReactElement {
158
+ return (
159
+ <Html>
160
+ <Head></Head>
161
+ <Body>
162
+ <Root rootId="root"></Root>
163
+ <Scripts />
164
+ </Body>
165
+ </Html>
166
+ );
167
+ }
168
+ ```
169
+
170
+ ## HTML Syntax
171
+
172
+ Modern.js also supports generating HTML files using HTML (EJS) syntax.
173
+
174
+ By default, Modern.js projects come with a built-in HTML template for generating HTML code. If you need to customize the HTML template, you can use two methods: **Custom HTML Fragments** and **Fully Custom HTML Templates**.
175
+
176
+ ### Custom HTML Fragments
177
+
178
+ Under the application root directory, create the `config/html/` directory, which supports the creation of four types of HTML fragments:
179
+
180
+ - `top.html`
181
+ - `head.html`
182
+ - `body.html`
183
+ - `bottom.html`
184
+
185
+ **These fragments will be injected into the default HTML template according to their positions.**
186
+
187
+ ```xml
188
+ <!DOCTYPE html>
189
+ <html>
190
+ <head>
191
+ <%= topTemplate %>
192
+ <%= headTemplate %>
193
+ {/* rspack inject css */}
194
+ </head>
195
+ <body>
196
+ <noscript>
197
+ We're sorry but react app doesn't work properly without JavaScript
198
+ enabled. Please enable it to continue.
199
+ </noscript>
200
+ <div id="<%= mountId %>"></div>
201
+ <%= bodyTemplate %>
202
+ {/* rspack inject js */}
203
+ {/* <?- bottomTemplate ?> */}
204
+ </body>
205
+ </html>
206
+ ```
207
+
208
+ HTML fragments support the use of [Lodash template](https://lodash.com/docs/4.17.15#template).
209
+
210
+ For example, to insert an external script in `body.html`:
211
+
212
+ ```html title="config/html/body.html"
213
+ <script src="//example.com/assets/a.js"></script>
214
+ ```
215
+
216
+ :::info
217
+ The implementation of custom HTML fragments is to merge the fragments with the built-in template. Since the `<title>` already exists in the default template, the title tag in the custom HTML template will not take effect. Please use [html.title](/configure/app/html/title) to modify the page title.
218
+
219
+ :::
220
+
221
+ ### Customize the entire HTML Template
222
+
223
+ In some cases, HTML fragments may not offer enough control. Modern.js provides a fully customized way.
224
+
225
+ :::caution Note
226
+ It is generally not recommended to directly override the default HTML template, as some functional options may be lost. If it is truly necessary to customize the entire HTML template, it is recommended to modify based on the built-in template as needed.
227
+
228
+ :::
229
+
230
+ Under the `config/html/` directory, create an `index.html` file that will replace the default HTML template.
231
+
232
+ :::info
233
+ The default HTML template can be viewed in `node_modules/.modern-js/${entryName}/index.html`.
234
+
235
+ :::
236
+
237
+ ### Template Parameters
238
+
239
+ The parameters used in the template can be defined by the [html.templateParameters](/configure/app/html/template-parameters) configuration.
240
+
241
+ ### Config By Entry
242
+
243
+ The HTML fragments in the `config/html/` directory take effect for all entries in the application. If you want to customize HTML fragments by entry, you can create a directory named after the **entry name** under the `config/html/` directory, and then customize the HTML fragments in this directory.
244
+
245
+ For example, the following HTML fragments are only effective for the `entry1` entry:
246
+
247
+ ```bash
248
+ .
249
+ ├── config/
250
+ │ └── html/
251
+ │ └── entry1
252
+ │ ├── head.html
253
+ │ └── body.html
254
+ └── src/
255
+ ├── entry1/
256
+ │ └── routes
257
+ └── entry2/
258
+ └── routes
259
+ ```
@@ -0,0 +1,145 @@
1
+ ---
2
+ sidebar_position: 10
3
+ ---
4
+
5
+ # Output Files
6
+
7
+ This chapter will introduces the directory structure of output files and how to control the output directory of different types of files.
8
+
9
+ ## Default Directory Structure
10
+
11
+ The following is a basic directory for output files. By default, the compiled files will be output in the `dist` directory of current project.
12
+
13
+ ```bash
14
+ dist
15
+ ├── static
16
+ │ ├── css
17
+ │ │ ├── [name].[hash].css
18
+ │ │ └── [name].[hash].css.map
19
+ │ │
20
+ │ └── js
21
+ │ ├── [name].[hash].js
22
+ │ ├── [name].[hash].js.LICENSE.txt
23
+ │ └── [name].[hash].js.map
24
+
25
+ └── html
26
+ └── [name]
27
+ └── index.html
28
+ ```
29
+
30
+ The most common output files are HTML files, JS files, and CSS files:
31
+
32
+ - HTML files: default output to the `html` directory.
33
+ - JS files: default output to `static/js` directory,
34
+ - CSS files: default output to the `static/css` directory.
35
+
36
+ In addition, JS files and CSS files sometimes generate some related files:
37
+
38
+ - License files: contains open source license, which is output to the same level directory of the JS file, and adds `.LICENSE.txt` suffix.
39
+ - Source Map files: contains the source code mappings, which is output to the same level directory of JS files and CSS files, and adds a `.map` suffix.
40
+
41
+ In the filename, `[name]` represents the entry name corresponding to this file, such as `index`, `main`. `[hash]` is the hash value generated based on the content of the file.
42
+
43
+ ## Modify the Directory
44
+
45
+ Modern.js provides some configs to modify the directory or filename, you can:
46
+
47
+ - Modify the filename through [output.filename](/configure/app/output/filename).
48
+ - Modify the output path of through [output.distPath](/configure/app/output/dist-path).
49
+ - Modify the license file through [output.legalComments](/configure/app/output/legal-comments).
50
+ - Remove Source Map file through [output.sourceMap](/configure/app/output/source-map).
51
+ - Remove the folder corresponding to the HTML files through [html.outputStructure](/configure/app/html/output-structure).
52
+
53
+ ## Static Assets
54
+
55
+ When you import static assets such as images, SVG, fonts, media, etc. in the code, they will also be output to the `dist/static` directory, and automatically assigned to the corresponding subdirectories according to the file type:
56
+
57
+ ```bash
58
+ dist
59
+ └── static
60
+ ├── image
61
+ │ └── foo.[hash].png
62
+
63
+ ├── svg
64
+ │ └── bar.[hash].svg
65
+
66
+ ├── font
67
+ │ └── baz.[hash].woff2
68
+
69
+ └── media
70
+ └── qux.[hash].mp4
71
+ ```
72
+
73
+ You can use the [output.distPath](/configure/app/output/dist-path) config to uniformly input these static assets into a directory, for example, output to the `assets` directory:
74
+
75
+ ```ts
76
+ export default {
77
+ output: {
78
+ distPath: {
79
+ image: 'assets',
80
+ svg: 'assets',
81
+ font: 'assets',
82
+ media: 'assets',
83
+ },
84
+ },
85
+ };
86
+ ```
87
+
88
+ The above config produces the following directory structure:
89
+
90
+ ```bash
91
+ dist
92
+ └── assets
93
+ ├── foo.[hash].png
94
+ ├── bar.[hash].svg
95
+ ├── baz.[hash].woff2
96
+ └── qux.[hash].mp4
97
+ ```
98
+
99
+ ## Flatten the Directory
100
+
101
+ Sometimes you don't want the dist directory to have too many levels, you can set the directory to an empty string to flatten the generated directory.
102
+
103
+ See the example below:
104
+
105
+ ```ts
106
+ export default {
107
+ output: {
108
+ distPath: {
109
+ js: '',
110
+ css: '',
111
+ html: '',
112
+ },
113
+ },
114
+ html: {
115
+ outputStructure: 'flat',
116
+ }
117
+ };
118
+ ```
119
+
120
+ The above config produces the following directory structure:
121
+
122
+ ```bash
123
+ dist
124
+ ├── [name].[hash].css
125
+ ├── [name].[hash].css.map
126
+ ├── [name].[hash].js
127
+ ├── [name].[hash].js.map
128
+ └── [name].html
129
+ ```
130
+
131
+ ## Not Written to Disk
132
+
133
+ By default, Modern.js will write the generated files to disk, so developers can view the file content or configure proxy rules for static assets.
134
+
135
+ In development, you can choose to keep the generated files in the Dev Server's memory to reduce the overhead of file operations.
136
+
137
+ Just set the `dev.writeToDisk` config to `false`:
138
+
139
+ ```ts
140
+ export default {
141
+ dev: {
142
+ writeToDisk: false,
143
+ },
144
+ };
145
+ ```
@@ -0,0 +1,10 @@
1
+ [
2
+ "overview",
3
+ "ssr",
4
+ "streaming-ssr",
5
+ "ssr-cache",
6
+ "ssg",
7
+ "rsc",
8
+ "tanstack-rsc",
9
+ "before-render"
10
+ ]
@@ -0,0 +1,108 @@
1
+ # Render Preprocessing
2
+
3
+ In certain scenarios, applications need to perform preprocessing operations before rendering. Modern.js recommends using **[Runtime Plugins](/plugin/introduction.html#runtime-plugins)** to implement this type of logic.
4
+
5
+ ## Defining a Runtime Plugin
6
+
7
+ ```ts
8
+ import type { RuntimePlugin } from '@modern-js/runtime';
9
+
10
+ const myRuntimePlugin = (): RuntimePlugin => ({
11
+ name: 'my-runtime-plugin',
12
+ setup: api => {
13
+ api.onBeforeRender(context => {
14
+ // Logic to execute before rendering
15
+ console.log('Before rendering:', context);
16
+ });
17
+ },
18
+ });
19
+
20
+ export default myRuntimePlugin;
21
+ ```
22
+
23
+ ## Registering the Plugin
24
+
25
+ Register the plugin in your project's `src/modern.runtime.ts` file:
26
+
27
+ ```ts
28
+ import { defineRuntimeConfig } from '@modern-js/runtime';
29
+ import myRuntimePlugin from './plugins/myRuntimePlugin';
30
+
31
+ export default defineRuntimeConfig({
32
+ plugins: [myRuntimePlugin()],
33
+ });
34
+ ```
35
+
36
+ ## Use Case -- Global Data Injection
37
+
38
+ Through the `context` parameter of the `onBeforeRender` hook, you can inject global data into your application. Application components can access this data using the `use(RuntimeContext)` Hook.
39
+
40
+ :::info
41
+
42
+ This feature is particularly useful in the following scenarios:
43
+
44
+ - Applications requiring page-level preliminary data
45
+ - Custom data injection workflows
46
+ - Framework migration scenarios (e.g., migrating from Next.js)
47
+
48
+ :::
49
+
50
+ **Defining a Data Injection Plugin**
51
+
52
+ ```ts
53
+ import type { RuntimePlugin } from '@modern-js/runtime';
54
+
55
+ const dataInjectionPlugin = (): RuntimePlugin => ({
56
+ name: 'data-injection-plugin',
57
+ setup: api => {
58
+ api.onBeforeRender(context => {
59
+ // Inject data into the context
60
+ context.message = 'Hello World';
61
+ });
62
+ },
63
+ });
64
+
65
+ export default dataInjectionPlugin;
66
+ ```
67
+
68
+ **Using Injected Data in Components**
69
+
70
+ ```tsx
71
+ import { use } from 'react';
72
+ import { RuntimeContext } from '@modern-js/runtime';
73
+
74
+ export default function MyComponent() {
75
+ const context = use(RuntimeContext);
76
+ const { message } = context;
77
+
78
+ return <div>{message}</div>;
79
+ }
80
+ ```
81
+
82
+ **Using with SSR**
83
+
84
+ In SSR scenarios, the browser can access data injected via `onBeforeRender` during server-side rendering. Developers can decide whether to re-fetch data on the browser side to override server data based on their requirements.
85
+
86
+ ```ts
87
+ import type { RuntimePlugin } from '@modern-js/runtime';
88
+
89
+ const dataInjectionPlugin = (): RuntimePlugin => ({
90
+ name: 'data-injection-plugin',
91
+ setup: api => {
92
+ api.onBeforeRender(context => {
93
+ if (process.env.MODERN_TARGET === 'node') {
94
+ // Set data during server-side rendering
95
+ context.message = 'Hello World By Server';
96
+ } else {
97
+ // Check data during client-side rendering
98
+ if (!context.message) {
99
+ // If server data is not available, set client data
100
+ context.message = 'Hello World By Client';
101
+ }
102
+ }
103
+ });
104
+ },
105
+ });
106
+
107
+ export default dataInjectionPlugin;
108
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Rendering Mode Overview
3
+ ---
4
+
5
+ # Rendering Mode Overview
6
+
7
+ Modern.js supports multiple rendering modes, and different rendering modes are suitable for different scenarios. Choosing the right rendering mode can significantly improve application performance and user experience.
8
+
9
+ ## Rendering Mode Quick Reference
10
+
11
+ | Rendering Mode | Characteristics | Use Cases |
12
+ |----------------|-----------------|-----------|
13
+ | **CSR** | Executes JavaScript in the browser to render pages | Applications with strong interactivity and low SEO requirements |
14
+ | **SSR** | Pre-renders complete HTML pages on the server | Websites with high requirements for first-screen performance and SEO |
15
+ | **Streaming SSR** | Renders and returns progressively, displaying initial UI faster | Applications requiring faster first-screen perception speed (**Default SSR mode**) |
16
+ | **RSC** | Components render on the server, reducing client JS size; high cohesion between data and component logic, reducing state passing | Projects pursuing optimal performance and needing to reduce client-side code |
17
+ | **SSG** | Generates static pages at build time, can be cached by CDN | Websites with relatively static content, such as blogs and documentation sites |
18
+
19
+ ## Performance Comparison
20
+
21
+ | Rendering Technology | Core Advantages | Main Bottlenecks |
22
+ |---------------------|-----------------|------------------|
23
+ | **SSR** | Server-side pre-rendering, beneficial for SEO | Must wait for all data to load before responding |
24
+ | **Streaming SSR** | Renders and returns progressively, faster first screen | JS bundle size is still large |
25
+ | **Streaming SSR + RSC** | Reduces client JS size | - |
26
+
27
+ ## How to Choose
28
+
29
+ ### Quick Decision Guide
30
+
31
+ - **Static Content + SEO Required** → **SSG**
32
+ - **SEO Required + First Screen Performance** → **Streaming SSR** (default)
33
+ - **Pursuing Optimal Performance** → **Streaming SSR + RSC**
34
+ - **CSR Project Gradual Optimization** → **CSR + RSC**
35
+ - **Highly Interactive + No SEO Needed** → **CSR**
36
+
37
+ ### Combining Modes
38
+
39
+ Modern.js supports combining multiple rendering modes:
40
+
41
+ - **Streaming SSR + RSC**: Streaming rendering + reduced client-side code
42
+ - **SSG + SSR**: Some pages static, some pages dynamic
43
+ - **CSR + RSC**: Client-side rendering + partial Server Components
44
+
45
+ ## Related Documentation
46
+
47
+ - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr)
48
+ - [Streaming Server-Side Rendering (Streaming SSR)](/guides/basic-features/render/streaming-ssr)
49
+ - [React Server Components (RSC)](/guides/basic-features/render/rsc)
50
+ - [TanStack Router RSC](/guides/basic-features/render/tanstack-rsc)
51
+ - [Static Site Generation (SSG)](/guides/basic-features/render/ssg)
52
+ - [Rendering Cache](/guides/basic-features/render/ssr-cache)