@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.99 → 3.8.1-ultramodern.2

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 (411) hide show
  1. package/bin/modern-bundle-docs.js +7 -0
  2. package/dist/cjs/builder/generator/getBuilderEnvironments.js +73 -11
  3. package/dist/cjs/bundleDocs.js +114 -0
  4. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +1 -1
  5. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +94 -18
  6. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
  7. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  8. package/dist/cjs/ultramodern-release-envelope/framework-output.js +109 -57
  9. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +63 -10
  10. package/dist/esm/bundleDocs.mjs +62 -0
  11. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
  12. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
  13. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
  14. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  15. package/dist/esm/ultramodern-release-envelope/framework-output.mjs +107 -58
  16. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +63 -10
  17. package/dist/esm-node/bundleDocs.mjs +63 -0
  18. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
  19. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
  20. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
  21. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  22. package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +107 -58
  23. package/dist/types/builder/generator/getBuilderEnvironments.d.ts +29 -0
  24. package/dist/types/bundleDocs.d.ts +20 -0
  25. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +1 -1
  26. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -1
  27. package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +13 -0
  28. package/dist/types/ultramodern-release-envelope/framework-output.d.ts +1 -0
  29. package/docs/apis/app/{commands.mdx → commands.md} +35 -9
  30. package/docs/apis/app/hooks/api/{lambda.mdx → lambda.md} +2 -6
  31. package/docs/apis/app/hooks/config/{favicon.mdx → favicon.md} +1 -6
  32. package/docs/apis/app/hooks/config/{html.mdx → html.md} +1 -5
  33. package/docs/apis/app/hooks/config/{icon.mdx → icon.md} +1 -6
  34. package/docs/apis/app/hooks/config/{mock.mdx → mock.md} +1 -5
  35. package/docs/apis/app/hooks/config/{public.mdx → public.md} +0 -4
  36. package/docs/apis/app/hooks/config/{upload.mdx → upload.md} +3 -7
  37. package/docs/apis/app/hooks/{modern-config.mdx → modern-config.md} +1 -5
  38. package/docs/apis/app/hooks/server/{server.mdx → server.md} +1 -6
  39. package/docs/apis/app/hooks/{shared.mdx → shared.md} +0 -4
  40. package/docs/apis/app/hooks/src/{app.mdx → app.md} +2 -2
  41. package/docs/apis/app/hooks/src/{entry.mdx → entry.md} +1 -6
  42. package/docs/apis/app/hooks/src/{entry.server.mdx → entry.server.md} +0 -5
  43. package/docs/apis/app/hooks/src/{modern.runtime.mdx → modern.runtime.md} +1 -5
  44. package/docs/apis/app/hooks/src/{routes.mdx → routes.md} +3 -7
  45. package/docs/apis/app/hooks/src/{server.mdx → server.md} +1 -5
  46. package/docs/apis/app/runtime/bff/{use-backend-context.mdx → use-backend-context.md} +0 -3
  47. package/docs/apis/app/runtime/core/{create-root.mdx → create-root.md} +0 -3
  48. package/docs/apis/app/runtime/core/{render.mdx → render.md} +1 -4
  49. package/docs/apis/app/runtime/core/{runtime-context.mdx → runtime-context.md} +0 -4
  50. package/docs/apis/app/runtime/router/{router.mdx → router.md} +1 -6
  51. package/docs/apis/app/runtime/ssr/{no-ssr.mdx → no-ssr.md} +0 -3
  52. package/docs/apis/app/runtime/ssr/{renderStreaming.mdx → renderStreaming.md} +0 -4
  53. package/docs/apis/app/runtime/ssr/{renderString.mdx → renderString.md} +0 -4
  54. package/docs/apis/app/runtime/ssr/{requestHandler.mdx → requestHandler.md} +0 -4
  55. package/docs/apis/app/runtime/utility/{css-in-js.mdx → css-in-js.md} +0 -4
  56. package/docs/apis/app/runtime/utility/{head.mdx → head.md} +0 -3
  57. package/docs/apis/app/runtime/utility/{loadable.mdx → loadable.md} +0 -3
  58. package/docs/community/blog/2022-0708-updates.md +91 -0
  59. package/docs/community/blog/2022-0910-updates.md +76 -0
  60. package/docs/community/blog/overview.md +63 -0
  61. package/docs/community/blog/v2-release-note.md +238 -0
  62. package/docs/community/blog/v3-release-note.md +622 -0
  63. package/docs/community/contributing-guide.md +252 -0
  64. package/docs/community/releases.md +23 -0
  65. package/docs/community/showcase.md +24 -0
  66. package/docs/community/team.md +14 -0
  67. package/docs/configure/app/bff/{cross-project.mdx → cross-project.md} +4 -8
  68. package/docs/configure/app/bff/{effect.mdx → effect.md} +16 -22
  69. package/docs/configure/app/bff/{prefix.mdx → prefix.md} +3 -7
  70. package/docs/configure/app/bff/{runtime-framework.mdx → runtime-framework.md} +3 -7
  71. package/docs/configure/app/{builder-plugins.mdx → builder-plugins.md} +4 -8
  72. package/docs/configure/app/dev/{asset-prefix.mdx → asset-prefix.md} +4 -9
  73. package/docs/configure/app/dev/{before-start-url.mdx → before-start-url.md} +0 -4
  74. package/docs/configure/app/dev/{client.mdx → client.md} +3 -7
  75. package/docs/configure/app/dev/hmr.md +10 -0
  76. package/docs/configure/app/dev/{host.mdx → host.md} +0 -4
  77. package/docs/configure/app/dev/{https.mdx → https.md} +0 -4
  78. package/docs/configure/app/dev/{lazy-compilation.mdx → lazy-compilation.md} +2 -8
  79. package/docs/configure/app/dev/live-reload.md +10 -0
  80. package/docs/configure/app/dev/{mock-dir.mdx → mock-dir.md} +0 -4
  81. package/docs/configure/app/dev/progress-bar.md +19 -0
  82. package/docs/configure/app/dev/{server.mdx → server.md} +0 -4
  83. package/docs/configure/app/dev/{setup-middlewares.mdx → setup-middlewares.md} +3 -7
  84. package/docs/configure/app/dev/{start-url.mdx → start-url.md} +0 -5
  85. package/docs/configure/app/dev/{watch-files.mdx → watch-files.md} +3 -7
  86. package/docs/configure/app/dev/{write-to-disk.mdx → write-to-disk.md} +3 -7
  87. package/docs/configure/app/experiments/{source-build.mdx → source-build.md} +1 -3
  88. package/docs/configure/app/html/{app-icon.mdx → app-icon.md} +3 -7
  89. package/docs/configure/app/html/{crossorigin.mdx → crossorigin.md} +3 -7
  90. package/docs/configure/app/html/{favicon.mdx → favicon.md} +3 -7
  91. package/docs/configure/app/html/inject.md +10 -0
  92. package/docs/configure/app/html/{meta.mdx → meta.md} +3 -7
  93. package/docs/configure/app/html/{mount-id.mdx → mount-id.md} +3 -7
  94. package/docs/configure/app/html/output-structure.md +10 -0
  95. package/docs/configure/app/html/script-loading.md +10 -0
  96. package/docs/configure/app/html/{tags.mdx → tags.md} +3 -7
  97. package/docs/configure/app/html/{template-parameters.mdx → template-parameters.md} +3 -7
  98. package/docs/configure/app/html/template.md +10 -0
  99. package/docs/configure/app/html/title.md +18 -0
  100. package/docs/configure/app/output/asset-prefix.md +11 -0
  101. package/docs/configure/app/output/{assets-retry.mdx → assets-retry.md} +1 -5
  102. package/docs/configure/app/output/{charset.mdx → charset.md} +3 -7
  103. package/docs/configure/app/output/{clean-dist-path.mdx → clean-dist-path.md} +0 -4
  104. package/docs/configure/app/output/{convert-to-rem.mdx → convert-to-rem.md} +12 -16
  105. package/docs/configure/app/output/{copy.mdx → copy.md} +3 -7
  106. package/docs/configure/app/output/{css-modules.mdx → css-modules.md} +3 -7
  107. package/docs/configure/app/output/{data-uri-limit.mdx → data-uri-limit.md} +3 -7
  108. package/docs/configure/app/output/{disable-css-module-extension.mdx → disable-css-module-extension.md} +3 -7
  109. package/docs/configure/app/output/{disable-inline-runtime-chunk.mdx → disable-inline-runtime-chunk.md} +0 -4
  110. package/docs/configure/app/output/{disable-svgr.mdx → disable-svgr.md} +0 -4
  111. package/docs/configure/app/output/{disable-ts-checker.mdx → disable-ts-checker.md} +0 -4
  112. package/docs/configure/app/output/{dist-path.mdx → dist-path.md} +3 -11
  113. package/docs/configure/app/output/{enable-asset-manifest.mdx → enable-asset-manifest.md} +0 -4
  114. package/docs/configure/app/output/{enable-css-module-tsdeclaration.mdx → enable-css-module-tsdeclaration.md} +0 -4
  115. package/docs/configure/app/output/{enable-inline-route-manifests.mdx → enable-inline-route-manifests.md} +0 -4
  116. package/docs/configure/app/output/{externals.mdx → externals.md} +3 -7
  117. package/docs/configure/app/output/filename-hash.md +10 -0
  118. package/docs/configure/app/output/{filename.mdx → filename.md} +3 -7
  119. package/docs/configure/app/output/inject-styles.md +10 -0
  120. package/docs/configure/app/output/{inline-scripts.mdx → inline-scripts.md} +4 -8
  121. package/docs/configure/app/output/{inline-styles.mdx → inline-styles.md} +4 -8
  122. package/docs/configure/app/output/{legal-comments.mdx → legal-comments.md} +3 -7
  123. package/docs/configure/app/output/{minify.mdx → minify.md} +3 -7
  124. package/docs/configure/app/output/{override-browserslist.mdx → override-browserslist.md} +4 -8
  125. package/docs/configure/app/output/polyfill.md +12 -0
  126. package/docs/configure/app/output/{source-map.mdx → source-map.md} +3 -7
  127. package/docs/configure/app/output/{split-route-chunks.mdx → split-route-chunks.md} +0 -4
  128. package/docs/configure/app/output/{ssg.mdx → ssg.md} +3 -7
  129. package/docs/configure/app/output/{ssgByEntries.mdx → ssgByEntries.md} +1 -4
  130. package/docs/configure/app/output/{svg-default-export.mdx → svg-default-export.md} +0 -4
  131. package/docs/configure/app/output/{temp-dir.mdx → temp-dir.md} +0 -4
  132. package/docs/configure/app/performance/{build-cache.mdx → build-cache.md} +3 -7
  133. package/docs/configure/app/performance/{chunk-split.mdx → chunk-split.md} +3 -7
  134. package/docs/configure/app/performance/{dns-prefetch.mdx → dns-prefetch.md} +3 -7
  135. package/docs/configure/app/performance/preconnect.md +16 -0
  136. package/docs/configure/app/performance/{prefetch.mdx → prefetch.md} +3 -7
  137. package/docs/configure/app/performance/{preload.mdx → preload.md} +3 -7
  138. package/docs/configure/app/performance/{print-file-size.mdx → print-file-size.md} +3 -7
  139. package/docs/configure/app/performance/profile.md +10 -0
  140. package/docs/configure/app/performance/remove-console.md +10 -0
  141. package/docs/configure/app/performance/remove-moment-locale.md +10 -0
  142. package/docs/configure/app/performance/{rsdoctor.mdx → rsdoctor.md} +0 -4
  143. package/docs/configure/app/{plugins.mdx → plugins.md} +4 -4
  144. package/docs/configure/app/resolve/{alias-strategy.mdx → alias-strategy.md} +3 -7
  145. package/docs/configure/app/resolve/alias.md +9 -0
  146. package/docs/configure/app/resolve/{condition-names.mdx → condition-names.md} +3 -8
  147. package/docs/configure/app/resolve/{dedupe.mdx → dedupe.md} +3 -7
  148. package/docs/configure/app/resolve/{extensions.mdx → extensions.md} +3 -8
  149. package/docs/configure/app/runtime/{0-intro.mdx → 0-intro.md} +1 -4
  150. package/docs/configure/app/runtime/{plugins.mdx → plugins.md} +1 -1
  151. package/docs/configure/app/runtime/{router.mdx → router.md} +3 -7
  152. package/docs/configure/app/security/{check-syntax.mdx → check-syntax.md} +0 -4
  153. package/docs/configure/app/security/{nonce.mdx → nonce.md} +3 -7
  154. package/docs/configure/app/security/{sri.mdx → sri.md} +0 -4
  155. package/docs/configure/app/server/{base-url.mdx → base-url.md} +0 -4
  156. package/docs/configure/app/server/{port.mdx → port.md} +3 -7
  157. package/docs/configure/app/server/{public-routes.mdx → public-routes.md} +0 -4
  158. package/docs/configure/app/server/{routes.mdx → routes.md} +1 -5
  159. package/docs/configure/app/server/rsc.md +22 -0
  160. package/docs/configure/app/server/{ssr-by-entries.mdx → ssr-by-entries.md} +1 -5
  161. package/docs/configure/app/server/ssr.md +80 -0
  162. package/docs/configure/app/server/{tsconfig-path.mdx → tsconfig-path.md} +0 -4
  163. package/docs/configure/app/source/{alias-strategy.mdx → alias-strategy.md} +4 -8
  164. package/docs/configure/app/source/{alias.mdx → alias.md} +4 -8
  165. package/docs/configure/app/source/{config-dir.mdx → config-dir.md} +1 -5
  166. package/docs/configure/app/source/{decorators.mdx → decorators.md} +0 -4
  167. package/docs/configure/app/source/{define.mdx → define.md} +3 -7
  168. package/docs/configure/app/source/{disable-default-entries.mdx → disable-default-entries.md} +2 -6
  169. package/docs/{components/module-federation.mdx → configure/app/source/enable-async-entry.md} +47 -0
  170. package/docs/configure/app/source/{enable-async-pre-entry.mdx → enable-async-pre-entry.md} +0 -4
  171. package/docs/configure/app/source/{entries-dir.mdx → entries-dir.md} +0 -4
  172. package/docs/configure/app/source/{entries.mdx → entries.md} +1 -5
  173. package/docs/configure/app/source/{exclude.mdx → exclude.md} +4 -8
  174. package/docs/configure/app/source/{global-vars.mdx → global-vars.md} +0 -4
  175. package/docs/configure/app/source/{include.mdx → include.md} +4 -8
  176. package/docs/configure/app/source/{main-entry-name.mdx → main-entry-name.md} +0 -4
  177. package/docs/configure/app/source/{pre-entry.mdx → pre-entry.md} +3 -7
  178. package/docs/configure/app/source/{react-compiler.mdx → react-compiler.md} +0 -4
  179. package/docs/configure/app/source/{transform-import.mdx → transform-import.md} +3 -7
  180. package/docs/configure/app/{split-chunks.mdx → split-chunks.md} +3 -3
  181. package/docs/configure/app/tools/{autoprefixer.mdx → autoprefixer.md} +0 -4
  182. package/docs/configure/app/tools/{bundler-chain.mdx → bundler-chain.md} +0 -4
  183. package/docs/configure/app/tools/{css-extract.mdx → css-extract.md} +3 -7
  184. package/docs/configure/app/tools/{css-loader.mdx → css-loader.md} +3 -7
  185. package/docs/configure/app/tools/{dev-server.mdx → dev-server.md} +0 -4
  186. package/docs/configure/app/tools/{html-plugin.mdx → html-plugin.md} +3 -7
  187. package/docs/configure/app/tools/{less.mdx → less.md} +0 -4
  188. package/docs/configure/app/tools/{lightningcss-loader.mdx → lightningcss-loader.md} +3 -7
  189. package/docs/configure/app/tools/{minify-css.mdx → minify-css.md} +0 -4
  190. package/docs/configure/app/tools/{postcss.mdx → postcss.md} +3 -7
  191. package/docs/configure/app/tools/rspack.md +10 -0
  192. package/docs/configure/app/tools/{sass.mdx → sass.md} +0 -4
  193. package/docs/configure/app/tools/style-loader.md +10 -0
  194. package/docs/configure/app/tools/{swc.mdx → swc.md} +4 -8
  195. package/docs/configure/app/tools/{ts-checker.mdx → ts-checker.md} +20 -7
  196. package/docs/configure/app/{usage.mdx → usage.md} +1 -1
  197. package/docs/guides/advanced-features/bff/{cross-project.mdx → cross-project.md} +1 -2
  198. package/docs/guides/advanced-features/bff/{data-platform.mdx → data-platform.md} +0 -4
  199. package/docs/guides/advanced-features/bff/{extend-server.mdx → extend-server.md} +1 -1
  200. package/docs/guides/advanced-features/bff/frameworks.md +243 -0
  201. package/docs/guides/advanced-features/bff/{function.mdx → function.md} +60 -7
  202. package/docs/guides/advanced-features/bff/{operators.mdx → operators.md} +2 -77
  203. package/docs/{components/bff-upload.mdx → guides/advanced-features/bff/upload.md} +4 -0
  204. package/docs/guides/advanced-features/{bff.mdx → bff.md} +0 -4
  205. package/docs/guides/advanced-features/{build-performance.mdx → build-performance.md} +3 -7
  206. package/docs/guides/advanced-features/{compatibility.mdx → compatibility.md} +54 -15
  207. package/docs/guides/advanced-features/international/{advanced.mdx → advanced.md} +0 -4
  208. package/docs/guides/advanced-features/international/{api.mdx → api.md} +16 -20
  209. package/docs/guides/advanced-features/international/{best-practices.mdx → best-practices.md} +0 -4
  210. package/docs/guides/advanced-features/international/configuration.md +228 -0
  211. package/docs/guides/advanced-features/international/{locale-detection.mdx → locale-detection.md} +25 -29
  212. package/docs/guides/advanced-features/international/{quick-start.mdx → quick-start.md} +29 -13
  213. package/docs/guides/advanced-features/international/{resource-loading.mdx → resource-loading.md} +11 -15
  214. package/docs/guides/advanced-features/international/{routing.mdx → routing.md} +12 -16
  215. package/docs/guides/advanced-features/international.md +27 -0
  216. package/docs/guides/advanced-features/{low-level.mdx → low-level.md} +17 -21
  217. package/docs/guides/advanced-features/page-performance/{code-split.mdx → code-split.md} +2 -6
  218. package/docs/guides/advanced-features/page-performance/{inline-assets.mdx → inline-assets.md} +3 -7
  219. package/docs/guides/advanced-features/page-performance/{optimize-bundle.mdx → optimize-bundle.md} +4 -8
  220. package/docs/{components/internal-logger.mdx → guides/advanced-features/server-monitor/logger.md} +16 -0
  221. package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
  222. package/docs/guides/advanced-features/server-monitor/{monitors.mdx → monitors.md} +3 -3
  223. package/docs/guides/advanced-features/{source-build.mdx → source-build.md} +1 -5
  224. package/docs/guides/advanced-features/{web-server.mdx → web-server.md} +1 -9
  225. package/docs/guides/basic-features/{alias.mdx → alias.md} +3 -7
  226. package/docs/guides/basic-features/css/{css-in-js.mdx → css-in-js.md} +12 -9
  227. package/docs/guides/basic-features/css/{css-modules.mdx → css-modules.md} +3 -3
  228. package/docs/guides/basic-features/css/{css.mdx → css.md} +2 -6
  229. package/docs/guides/basic-features/data/{data-cache.mdx → data-cache.md} +1 -6
  230. package/docs/guides/basic-features/data/{data-fetch.mdx → data-fetch.md} +4 -8
  231. package/docs/guides/basic-features/data/{data-write.mdx → data-write.md} +6 -9
  232. package/docs/guides/basic-features/debug/{mock.mdx → mock.md} +1 -5
  233. package/docs/guides/basic-features/debug/{proxy.mdx → proxy.md} +1 -5
  234. package/docs/guides/basic-features/debug/{using-storybook.mdx → using-storybook.md} +20 -8
  235. package/docs/guides/basic-features/{deploy.mdx → deploy.md} +23 -13
  236. package/docs/guides/basic-features/{env-vars.mdx → env-vars.md} +8 -12
  237. package/docs/guides/basic-features/{html.mdx → html.md} +3 -7
  238. package/docs/guides/basic-features/{output-files.mdx → output-files.md} +6 -10
  239. package/docs/guides/basic-features/render/{before-render.mdx → before-render.md} +1 -1
  240. package/docs/guides/basic-features/render/overview.md +47 -0
  241. package/docs/guides/basic-features/render/{rsc.mdx → rsc.md} +16 -33
  242. package/docs/guides/basic-features/render/{ssg.mdx → ssg.md} +71 -10
  243. package/docs/guides/basic-features/render/{ssr-cache.mdx → ssr-cache.md} +5 -5
  244. package/docs/guides/basic-features/render/{ssr.mdx → ssr.md} +10 -12
  245. package/docs/guides/basic-features/render/{streaming-ssr.mdx → streaming-ssr.md} +5 -8
  246. package/docs/guides/basic-features/routes/{config-routes.mdx → config-routes.md} +10 -11
  247. package/docs/guides/basic-features/routes/{routes.mdx → routes.md} +8 -16
  248. package/docs/guides/basic-features/static-assets/{json-files.mdx → json-files.md} +0 -4
  249. package/docs/guides/basic-features/static-assets/{svg-assets.mdx → svg-assets.md} +3 -7
  250. package/docs/guides/basic-features/static-assets/{wasm-assets.mdx → wasm-assets.md} +1 -5
  251. package/docs/guides/basic-features/{static-assets.mdx → static-assets.md} +10 -14
  252. package/docs/guides/basic-features/testing/{playwright.mdx → playwright.md} +12 -3
  253. package/docs/guides/basic-features/testing/{rstest.mdx → rstest.md} +70 -11
  254. package/docs/guides/concept/{builder.mdx → builder.md} +3 -26
  255. package/docs/guides/concept/{entries.mdx → entries.md} +11 -17
  256. package/docs/guides/concept/{server.mdx → server.md} +3 -3
  257. package/docs/guides/get-started/{ai-coding-agents.mdx → ai-coding-agents.md} +4 -9
  258. package/docs/guides/get-started/glossary.md +63 -0
  259. package/docs/guides/get-started/{introduction.mdx → introduction.md} +1 -6
  260. package/docs/guides/get-started/quick-start.md +269 -0
  261. package/docs/guides/get-started/{tech-stack.mdx → tech-stack.md} +9 -15
  262. package/docs/guides/get-started/{ultramodern.mdx → ultramodern.md} +38 -31
  263. package/docs/guides/get-started/{upgrade.mdx → upgrade.md} +26 -22
  264. package/docs/guides/topic-detail/module-federation/{application.mdx → application.md} +3 -3
  265. package/docs/guides/topic-detail/module-federation/{deploy.mdx → deploy.md} +2 -2
  266. package/docs/guides/topic-detail/module-federation/{i18n.mdx → i18n.md} +14 -14
  267. package/docs/guides/topic-detail/module-federation/{introduce.mdx → introduce.md} +2 -3
  268. package/docs/guides/topic-detail/module-federation/{ssr.mdx → ssr.md} +12 -7
  269. package/docs/guides/topic-detail/module-federation/{usage.mdx → usage.md} +20 -3
  270. package/docs/guides/troubleshooting/{builder.mdx → builder.md} +10 -14
  271. package/docs/guides/troubleshooting/{cli.mdx → cli.md} +0 -4
  272. package/docs/guides/troubleshooting/{dependencies.mdx → dependencies.md} +7 -11
  273. package/docs/guides/troubleshooting/{hmr.mdx → hmr.md} +5 -9
  274. package/docs/guides/upgrade/{config.mdx → config.md} +8 -5
  275. package/docs/guides/upgrade/{entry.mdx → entry.md} +6 -6
  276. package/docs/guides/upgrade/{other.mdx → other.md} +8 -8
  277. package/docs/guides/upgrade/{overview.mdx → overview.md} +4 -4
  278. package/docs/guides/upgrade/{tailwindcss.mdx → tailwindcss.md} +0 -1
  279. package/docs/guides/upgrade/web-server.md +11 -11
  280. package/docs/index.md +33 -4
  281. package/docs/llms.txt +290 -0
  282. package/docs/plugin/cli-plugins/api.md +573 -0
  283. package/docs/plugin/cli-plugins/life-cycle.md +2 -0
  284. package/docs/plugin/introduction.md +152 -0
  285. package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
  286. package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
  287. package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
  288. package/docs/plugin/official/cli-plugins.md +4 -0
  289. package/docs/plugin/plugin-system.md +238 -0
  290. package/docs/plugin/runtime-plugins/api.md +194 -0
  291. package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
  292. package/docs/plugin/server-plugins/api.md +209 -0
  293. package/docs/plugin/server-plugins/life-cycle.md +13 -0
  294. package/docs/tutorials/examples/csr-auth.md +9 -0
  295. package/docs/tutorials/foundations/introduction.md +16 -0
  296. package/package.json +33 -15
  297. package/docs/_nav.json +0 -36
  298. package/docs/apis/_meta.json +0 -13
  299. package/docs/apis/app/hooks/_meta.json +0 -28
  300. package/docs/apis/app/hooks/config/_meta.json +0 -1
  301. package/docs/apis/app/runtime/_meta.json +0 -32
  302. package/docs/components/auto-upgrade.mdx +0 -0
  303. package/docs/components/build-output.mdx +0 -45
  304. package/docs/components/bundler.mdx +0 -3
  305. package/docs/components/convention-routing-motivation.mdx +0 -0
  306. package/docs/components/debug-app.mdx +0 -15
  307. package/docs/components/default-browserslist.mdx +0 -7
  308. package/docs/components/deploy-command.mdx +0 -14
  309. package/docs/components/deploy.mdx +0 -1
  310. package/docs/components/enable-bff-caution.mdx +0 -3
  311. package/docs/components/enable-bff.mdx +0 -56
  312. package/docs/components/enable-ssg.mdx +0 -49
  313. package/docs/components/entry-mode.mdx +0 -0
  314. package/docs/components/entry-scan-logic.mdx +0 -7
  315. package/docs/components/extend-bff-function.mdx +0 -3
  316. package/docs/components/hono.mdx +0 -120
  317. package/docs/components/init-app.mdx +0 -93
  318. package/docs/components/init-rspack-app.mdx +0 -5
  319. package/docs/components/internal-metrics.mdx +0 -20
  320. package/docs/components/international/custom-instance-code.mdx +0 -16
  321. package/docs/components/international/init-options-desc.mdx +0 -1
  322. package/docs/components/international/install-command.mdx +0 -10
  323. package/docs/components/international/instance-code.mdx +0 -16
  324. package/docs/components/international/introduce.mdx +0 -5
  325. package/docs/components/international/platform-support.mdx +0 -0
  326. package/docs/components/language-config.mdx +0 -9
  327. package/docs/components/micro-frontend.mdx +0 -6
  328. package/docs/components/micro-master-manifest-config.mdx +0 -15
  329. package/docs/components/micro-runtime-config.mdx +0 -17
  330. package/docs/components/new-entry-tooltip.mdx +0 -0
  331. package/docs/components/nodeVersion.mdx +0 -28
  332. package/docs/components/other-plugins.mdx +0 -0
  333. package/docs/components/output-asset-prefix-extend.mdx +0 -0
  334. package/docs/components/output-distpath-warning.mdx +0 -0
  335. package/docs/components/output-polyfill-extend.mdx +0 -1
  336. package/docs/components/prerequisites.mdx +0 -18
  337. package/docs/components/release-note.mdx +0 -1
  338. package/docs/components/routes-practice.mdx +0 -0
  339. package/docs/components/rsbuild-config-tooltip.mdx +0 -5
  340. package/docs/components/rsbuild.mdx +0 -3
  341. package/docs/components/rsc-deploy-tip.mdx +0 -1
  342. package/docs/components/rspack.mdx +0 -3
  343. package/docs/components/rspackTip.mdx +0 -7
  344. package/docs/components/runtime-cli-config.mdx +0 -0
  345. package/docs/components/serve-command.mdx +0 -22
  346. package/docs/components/ssr-monitor.mdx +0 -3
  347. package/docs/components/stream-ssr-performance.mdx +0 -0
  348. package/docs/components/swc.mdx +0 -3
  349. package/docs/components/tech-stack-node-framework.mdx +0 -1
  350. package/docs/components/turtorials-example-list.mdx +0 -2
  351. package/docs/components/ua-polyfill.mdx +0 -44
  352. package/docs/components/upgrade-browserslist.mdx +0 -0
  353. package/docs/components/upgrade-config-deploy.mdx +0 -0
  354. package/docs/components/upgrade-faq.mdx +0 -0
  355. package/docs/configure/_meta.json +0 -78
  356. package/docs/configure/app/dev/hmr.mdx +0 -14
  357. package/docs/configure/app/dev/live-reload.mdx +0 -14
  358. package/docs/configure/app/dev/progress-bar.mdx +0 -23
  359. package/docs/configure/app/html/inject.mdx +0 -14
  360. package/docs/configure/app/html/output-structure.mdx +0 -14
  361. package/docs/configure/app/html/script-loading.mdx +0 -14
  362. package/docs/configure/app/html/template.mdx +0 -14
  363. package/docs/configure/app/html/title.mdx +0 -22
  364. package/docs/configure/app/output/asset-prefix.mdx +0 -18
  365. package/docs/configure/app/output/filename-hash.mdx +0 -14
  366. package/docs/configure/app/output/inject-styles.mdx +0 -14
  367. package/docs/configure/app/output/polyfill.mdx +0 -18
  368. package/docs/configure/app/performance/preconnect.mdx +0 -20
  369. package/docs/configure/app/performance/profile.mdx +0 -14
  370. package/docs/configure/app/performance/remove-console.mdx +0 -14
  371. package/docs/configure/app/performance/remove-moment-locale.mdx +0 -14
  372. package/docs/configure/app/resolve/alias.mdx +0 -13
  373. package/docs/configure/app/server/rsc.mdx +0 -30
  374. package/docs/configure/app/server/ssr.mdx +0 -85
  375. package/docs/configure/app/source/enable-async-entry.mdx +0 -54
  376. package/docs/configure/app/tools/rspack.mdx +0 -14
  377. package/docs/configure/app/tools/style-loader.mdx +0 -14
  378. package/docs/guides/_meta.json +0 -37
  379. package/docs/guides/advanced-features/_meta.json +0 -32
  380. package/docs/guides/advanced-features/bff/_meta.json +0 -10
  381. package/docs/guides/advanced-features/bff/frameworks.mdx +0 -131
  382. package/docs/guides/advanced-features/bff/upload.mdx +0 -7
  383. package/docs/guides/advanced-features/international/_meta.json +0 -10
  384. package/docs/guides/advanced-features/international/configuration.mdx +0 -222
  385. package/docs/guides/advanced-features/international.mdx +0 -29
  386. package/docs/guides/advanced-features/page-performance/_meta.json +0 -1
  387. package/docs/guides/advanced-features/server-monitor/_meta.json +0 -1
  388. package/docs/guides/advanced-features/server-monitor/logger.mdx +0 -19
  389. package/docs/guides/advanced-features/server-monitor/metrics.mdx +0 -41
  390. package/docs/guides/basic-features/_meta.json +0 -49
  391. package/docs/guides/basic-features/css/_meta.json +0 -1
  392. package/docs/guides/basic-features/data/_meta.json +0 -1
  393. package/docs/guides/basic-features/debug/_meta.json +0 -1
  394. package/docs/guides/basic-features/render/_meta.json +0 -1
  395. package/docs/guides/basic-features/render/overview.mdx +0 -51
  396. package/docs/guides/basic-features/routes/_meta.json +0 -1
  397. package/docs/guides/basic-features/static-assets/_meta.json +0 -1
  398. package/docs/guides/basic-features/testing/_meta.json +0 -1
  399. package/docs/guides/concept/_meta.json +0 -1
  400. package/docs/guides/get-started/_meta.json +0 -9
  401. package/docs/guides/get-started/glossary.mdx +0 -63
  402. package/docs/guides/get-started/quick-start.mdx +0 -92
  403. package/docs/guides/topic-detail/_meta.json +0 -8
  404. package/docs/guides/topic-detail/module-federation/_meta.json +0 -1
  405. package/docs/guides/troubleshooting/_meta.json +0 -1
  406. package/docs/guides/upgrade/_meta.json +0 -1
  407. package/scripts/copy-main-doc.mjs +0 -50
  408. /package/docs/guides/advanced-features/bff/{sdk.mdx → sdk.md} +0 -0
  409. /package/docs/guides/advanced-features/page-performance/{react-compiler.mdx → react-compiler.md} +0 -0
  410. /package/docs/guides/basic-features/css/{tailwindcss.mdx → tailwindcss.md} +0 -0
  411. /package/docs/guides/basic-features/debug/{rsdoctor.mdx → rsdoctor.md} +0 -0
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 9
3
- ---
4
-
5
1
  # HTML Template
6
2
 
7
3
  Modern.js provides **JSX syntax** and **HTML(EJS) syntax** to customize the HTML template.
@@ -29,7 +25,7 @@ For example, consider the following directory structure:
29
25
  If not found, default template will be used.
30
26
 
31
27
  :::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.
28
+ `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.md). 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
29
  :::
34
30
 
35
31
  ### HTML Components
@@ -214,7 +210,7 @@ For example, to insert an external script in `body.html`:
214
210
  ```
215
211
 
216
212
  :::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.
213
+ 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.md) to modify the page title.
218
214
 
219
215
  :::
220
216
 
@@ -236,7 +232,7 @@ The default HTML template can be viewed in `node_modules/.modern-js/${entryName}
236
232
 
237
233
  ### Template Parameters
238
234
 
239
- The parameters used in the template can be defined by the [html.templateParameters](/configure/app/html/template-parameters) configuration.
235
+ The parameters used in the template can be defined by the [html.templateParameters](/configure/app/html/template-parameters.md) configuration.
240
236
 
241
237
  ### Config By Entry
242
238
 
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 10
3
- ---
4
-
5
1
  # Output Files
6
2
 
7
3
  This chapter will introduces the directory structure of output files and how to control the output directory of different types of files.
@@ -44,11 +40,11 @@ In the filename, `[name]` represents the entry name corresponding to this file,
44
40
 
45
41
  Modern.js provides some configs to modify the directory or filename, you can:
46
42
 
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).
43
+ - Modify the filename through [output.filename](/configure/app/output/filename.md).
44
+ - Modify the output path of through [output.distPath](/configure/app/output/dist-path.md).
45
+ - Modify the license file through [output.legalComments](/configure/app/output/legal-comments.md).
46
+ - Remove Source Map file through [output.sourceMap](/configure/app/output/source-map.md).
47
+ - Remove the folder corresponding to the HTML files through [html.outputStructure](/configure/app/html/output-structure.md).
52
48
 
53
49
  ## Static Assets
54
50
 
@@ -70,7 +66,7 @@ dist
70
66
  └── qux.[hash].mp4
71
67
  ```
72
68
 
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:
69
+ You can use the [output.distPath](/configure/app/output/dist-path.md) config to uniformly input these static assets into a directory, for example, output to the `assets` directory:
74
70
 
75
71
  ```ts
76
72
  export default {
@@ -1,6 +1,6 @@
1
1
  # Render Preprocessing
2
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.
3
+ In certain scenarios, applications need to perform preprocessing operations before rendering. Modern.js recommends using **[Runtime Plugins](/plugin/introduction.md#runtime-plugins)** to implement this type of logic.
4
4
 
5
5
  ## Defining a Runtime Plugin
6
6
 
@@ -0,0 +1,47 @@
1
+ # Rendering Mode Overview
2
+
3
+ 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.
4
+
5
+ ## Rendering Mode Quick Reference
6
+
7
+ | Rendering Mode | Characteristics | Use Cases |
8
+ | ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
9
+ | **CSR** | Executes JavaScript in the browser to render pages | Applications with strong interactivity and low SEO requirements |
10
+ | **SSR** | Pre-renders complete HTML pages on the server | Websites with high requirements for first-screen performance and SEO |
11
+ | **Streaming SSR** | Renders and returns progressively, displaying initial UI faster | Applications requiring faster first-screen perception speed (**Default SSR mode**) |
12
+ | **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 |
13
+ | **SSG** | Generates static pages at build time, can be cached by CDN | Websites with relatively static content, such as blogs and documentation sites |
14
+
15
+ ## Performance Comparison
16
+
17
+ | Rendering Technology | Core Advantages | Main Bottlenecks |
18
+ | ----------------------- | ------------------------------------------------------ | ------------------------------------------------ |
19
+ | **SSR** | Server-side pre-rendering, beneficial for SEO | Must wait for all data to load before responding |
20
+ | **Streaming SSR** | Renders and returns progressively, faster first screen | JS bundle size is still large |
21
+ | **Streaming SSR + RSC** | Reduces client JS size | - |
22
+
23
+ ## How to Choose
24
+
25
+ ### Quick Decision Guide
26
+
27
+ - **Static Content + SEO Required** → **SSG**
28
+ - **SEO Required + First Screen Performance** → **Streaming SSR** (default)
29
+ - **Pursuing Optimal Performance** → **Streaming SSR + RSC**
30
+ - **CSR Project Gradual Optimization** → **CSR + RSC**
31
+ - **Highly Interactive + No SEO Needed** → **CSR**
32
+
33
+ ### Combining Modes
34
+
35
+ Modern.js supports combining multiple rendering modes:
36
+
37
+ - **Streaming SSR + RSC**: Streaming rendering + reduced client-side code
38
+ - **SSG + SSR**: Some pages static, some pages dynamic
39
+ - **CSR + RSC**: Client-side rendering + partial Server Components
40
+
41
+ ## Related Documentation
42
+
43
+ - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr.md)
44
+ - [Streaming Server-Side Rendering (Streaming SSR)](/guides/basic-features/render/streaming-ssr.md)
45
+ - [React Server Components (RSC)](/guides/basic-features/render/rsc.md)
46
+ - [Static Site Generation (SSG)](/guides/basic-features/render/ssg.md)
47
+ - [Rendering Cache](/guides/basic-features/render/ssr-cache.md)
@@ -1,7 +1,3 @@
1
- ---
2
- title: React Server Components (RSC)
3
- ---
4
-
5
1
  # React Server Components (RSC)
6
2
 
7
3
  React Server Components (RSC) is a new component type that allows components to be rendered in a server environment, bringing better performance and developer experience to modern web applications.
@@ -21,29 +17,20 @@ Before starting, we recommend reading React's official [Server Components docume
21
17
 
22
18
  ## Quick Start
23
19
 
24
- 1. **Ensure React and React DOM are upgraded to version 19** (recommended version 19.2.4 or above)
25
-
26
- 2. **Install the `react-server-dom-rspack@0.0.2` dependency**
27
-
28
- ```bash
29
- npm install react-server-dom-rspack@0.0.2
30
- ```
31
-
32
- :::warning Notes
33
-
34
- 1. Currently, [Server Functions](https://react.dev/reference/rsc/server-functions) are not supported in SPA projects
35
- 2. Currently, when building with Rspack, the output chunks and bundle size are not yet optimal. We will further optimize this in the near future
20
+ :::warning UltraModern availability
21
+ RSC is not shipped or supported in the current UltraModern company distribution. The framework keeps [`server.rsc`](/configure/app/server/rsc.md) disabled while the Rspack Flight runtime is completed upstream. Do not install `react-server-dom-rspack` or carry an application-level pnpm patch to enable it early.
36
22
 
23
+ The remainder of this page is retained as reference material for future upstream adoption.
37
24
  :::
38
25
 
39
- 3. Set [`server.rsc`](/configure/app/server/rsc) to `true`:
26
+ Keep [`server.rsc`](/configure/app/server/rsc.md) set to `false`:
40
27
 
41
28
  ```ts title="modern.config.ts"
42
29
  import { defineConfig } from '@modern-js/app-tools';
43
30
 
44
31
  export default defineConfig({
45
32
  server: {
46
- rsc: true,
33
+ rsc: false,
47
34
  },
48
35
  });
49
36
  ```
@@ -235,16 +222,16 @@ For example, if `layout.tsx` is a Client Component (requiring client-side intera
235
222
 
236
223
  ## Server Component and Data Loader
237
224
 
238
- In RSC projects, you have two ways to fetch data: directly in Server Components, or using [Data Loader](/guides/basic-features/data/data-fetch). Both approaches have their advantages, and you can choose flexibly based on your scenario.
225
+ In RSC projects, you have two ways to fetch data: directly in Server Components, or using [Data Loader](/guides/basic-features/data/data-fetch.md). Both approaches have their advantages, and you can choose flexibly based on your scenario.
239
226
 
240
227
  ### Comparison of Two Data Fetching Approaches
241
228
 
242
- | Feature | Fetching in Server Component | Fetching in Data Loader |
243
- | --- | --- | --- |
244
- | Avoid Request Waterfall | Requires manual optimization | ✅ Automatically parallel execution |
245
- | Component Cohesion | ✅ Data and UI in the same place | Data logic separated into separate files |
246
- | Maintainability | ✅ Easier to understand and maintain | Requires maintaining additional files |
247
- | Type Safety | ✅ Natural type inference | Requires manual type management |
229
+ | Feature | Fetching in Server Component | Fetching in Data Loader |
230
+ | ----------------------- | ----------------------------------- | ---------------------------------------- |
231
+ | Avoid Request Waterfall | Requires manual optimization | ✅ Automatically parallel execution |
232
+ | Component Cohesion | ✅ Data and UI in the same place | Data logic separated into separate files |
233
+ | Maintainability | ✅ Easier to understand and maintain | Requires maintaining additional files |
234
+ | Type Safety | ✅ Natural type inference | Requires manual type management |
248
235
 
249
236
  **Generally, we recommend fetching data in Server Components**, because waterfall requests have less performance impact on the server, and this approach makes components more cohesive, with data fetching logic and UI rendering in the same place, making it easier to understand and maintain. However, if your page has multiple independent data sources and you want to completely avoid request waterfall issues, Data Loader's parallel execution feature will be more advantageous.
250
237
 
@@ -389,7 +376,7 @@ function NonCriticalUI({ p }: { p: Promise<string> }) {
389
376
 
390
377
  1. Whether it's an SSR or RSC project, it's recommended to use the `cache` function provided by Modern.js for data fetching logic executed on the server by default. This ensures that for each server-side render, no matter how many times the function is called, it will only execute once.
391
378
 
392
- > This is also the recommended usage by React.js, which provides the [cache](https://react.dev/reference/react/cache) function. Modern.js's [cache](/guides/basic-features/data/data-cache.html) can be considered a superset of it.
379
+ > This is also the recommended usage by React.js, which provides the [cache](https://react.dev/reference/react/cache) function. Modern.js's [cache](/guides/basic-features/data/data-cache.md) can be considered a superset of it.
393
380
 
394
381
  ```typescript
395
382
  import { cache } from '@modern-js/runtime/cache';
@@ -513,10 +500,6 @@ export default function ProfilePage() {
513
500
 
514
501
  When using React 19, you no longer need to use Helmet. We recommend directly using the [components](https://react.dev/reference/react-dom/components) provided by React.
515
502
 
516
- import DeployTip from '@site-docs/components/rsc-deploy-tip';
517
-
518
-
519
- <DeployTip />
520
503
 
521
504
  ## Common Issues
522
505
 
@@ -528,6 +511,6 @@ The project's bundle has introduced a non-19 React version, commonly seen in mon
528
511
 
529
512
  - [React Server Components Official Documentation](https://react.dev/reference/rsc/server-components)
530
513
  - [React Server Functions Documentation](https://react.dev/reference/rsc/server-functions)
531
- - [Data Cache](/guides/basic-features/data/data-cache)
532
- - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr)
533
- - [Streaming SSR](/guides/basic-features/render/streaming-ssr)
514
+ - [Data Cache](/guides/basic-features/data/data-cache.md)
515
+ - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr.md)
516
+ - [Streaming SSR](/guides/basic-features/render/streaming-ssr.md)
@@ -1,15 +1,58 @@
1
- ---
2
- ---
3
-
4
1
  # Static Site Generation
5
2
 
6
3
  SSG (Static Site Generation) is a technical solution that generates complete static web pages at build time based on data and templates. This means that in a production environment, pages are pre-rendered with content and can be cached by a CDN. SSG can offer better performance and higher security for pages that do not require dynamic data.
7
4
 
8
5
  ## Enabling SSG
9
6
 
10
- import EnableSSG from '@site-docs-en/components/enable-ssg';
7
+ To enable SSG functionality in a Modern.js project, follow these steps to modify the code:
8
+
9
+ 1. Install SSG plugin dependencies
10
+
11
+ If the SSG plugin is not yet installed in your project, install it first:
12
+
13
+ ```bash
14
+ pnpm add @modern-js/plugin-ssg
15
+ ```
16
+
17
+ :::tip Version Consistency
18
+
19
+ Make sure the version of `@modern-js/plugin-ssg` matches the version of `@modern-js/app-tools` in your project. All Modern.js official packages are released with a uniform version number, and version mismatches may cause compatibility issues.
20
+
21
+ Check the version of `@modern-js/app-tools` first, then install the same version of `@modern-js/plugin-ssg`:
22
+
23
+ ```bash
24
+ # Check the current version of @modern-js/app-tools
25
+ pnpm list @modern-js/app-tools
26
+
27
+ # Install the same version of @modern-js/plugin-ssg
28
+ pnpm add @modern-js/plugin-ssg@<version>
29
+ ```
30
+
31
+ :::
32
+
33
+ 2. Configure modern.config.ts
11
34
 
12
- <EnableSSG />
35
+ Import and add the SSG plugin in the `modern.config.ts` file, and configure `output.ssg`:
36
+
37
+ ```ts title="modern.config.ts"
38
+ import { defineConfig, appTools } from '@modern-js/app-tools';
39
+ import { ssgPlugin } from '@modern-js/plugin-ssg';
40
+
41
+ export default defineConfig({
42
+ plugins: [appTools(), ssgPlugin()],
43
+ output: {
44
+ ssg: true,
45
+ },
46
+ });
47
+ ```
48
+
49
+ :::info Scope of Application
50
+
51
+ - Use `output.ssg` for single-entry apps.
52
+ - Use `output.ssgByEntries` for multi-entry apps.
53
+ - When only `output.ssg: true` is set and `output.ssgByEntries` is not configured, all routes under all entries will be treated as SSG routes.
54
+
55
+ :::
13
56
 
14
57
  ## Development Debugging
15
58
 
@@ -50,7 +93,7 @@ The above file directory will generate the following three routes:
50
93
  - `/user/profile`
51
94
 
52
95
  :::tip
53
- If you are not familiar with the rules of conventional routing, refer to the [Routing Solution](/guides/basic-features/routes/routes) first.
96
+ If you are not familiar with the rules of conventional routing, refer to the [Routing Solution](/guides/basic-features/routes/routes.md) first.
54
97
 
55
98
  :::
56
99
 
@@ -76,9 +119,27 @@ After running `pnpm run serve` to start the project, inspect the returned docume
76
119
 
77
120
  For example, consider the following code with multiple routes. By setting `output.ssg` to `true`, it will only render the entry route (`/`) by default.
78
121
 
79
- import SelfRouteExample from '@site-docs/components/self-route-example';
122
+ ```tsx title="src/App.tsx"
123
+ import { BrowserRouter, Route, Routes } from '@modern-js/runtime/router';
124
+ import { StaticRouter } from '@modern-js/runtime/router/server';
125
+ import { use } from 'react';
126
+ import { RuntimeContext } from '@modern-js/runtime';
80
127
 
81
- <SelfRouteExample />
128
+ const Router = typeof window === 'undefined' ? StaticRouter : BrowserRouter;
129
+
130
+ export default () => {
131
+ const context = use(RuntimeContext);
132
+ const pathname = context?.request?.pathname;
133
+ return (
134
+ <Router location={pathname}>
135
+ <Routes>
136
+ <Route index element={<div>index</div>} />
137
+ <Route path="about" element={<div>about</div>} />
138
+ </Routes>
139
+ </Router>
140
+ );
141
+ };
142
+ ```
82
143
 
83
144
  If you want to enable SSG for `/about` as well, you can configure `output.ssg`:
84
145
 
@@ -97,7 +158,7 @@ After running `pnpm run build`, you will see a new `main/about/index.html` file
97
158
  After running `pnpm run serve` to start the project, inspect the returned document in the Network tab of the browser's development tools. The document includes the fully rendered content from the component.
98
159
 
99
160
  :::info
100
- The above example introduces single-entry scenarios. For more information, refer to the [API Documentation](/configure/app/output/ssg).
161
+ The above example introduces single-entry scenarios. For more information, refer to the [API Documentation](/configure/app/output/ssg.md).
101
162
  :::
102
163
 
103
164
  ## Adding Dynamic Routes
@@ -132,7 +193,7 @@ export default defineConfig({
132
193
  ```
133
194
 
134
195
  :::info
135
- See API details: [output.ssgByEntries](/configure/app/output/ssgByEntries)
196
+ See API details: [output.ssgByEntries](/configure/app/output/ssgByEntries.md)
136
197
  :::
137
198
 
138
199
  ## Configuring Request Headers for Rendering
@@ -193,9 +193,9 @@ When rendering cache is enabled, Modern.js identifies the cache status of the cu
193
193
 
194
194
  The `x-render-cache` header can have the following values:
195
195
 
196
- | Name | Description |
197
- | ------- | ------------------------------------------------ |
198
- | hit | Cache hit, returned cache content |
196
+ | Name | Description |
197
+ | ------- | ----------------------------------------------------------------------------------- |
198
+ | hit | Cache hit, returned cache content |
199
199
  | stale | Cache hit, but data is stale, returned cache content and re-rendered asynchronously |
200
- | expired | Cache expired, re-rendered and returned new content |
201
- | miss | Cache missed |
200
+ | expired | Cache expired, re-rendered and returned new content |
201
+ | miss | Cache missed |
@@ -11,7 +11,7 @@ Server-Side Rendering (SSR) generates complete HTML pages on the server and send
11
11
  :::info Default Rendering Mode
12
12
  Modern.js SSR **uses streaming rendering (Streaming SSR) by default**, allowing pages to be returned progressively as they render, so users can see initial content faster.
13
13
 
14
- For detailed usage, refer to the [Streaming SSR](/guides/basic-features/render/streaming-ssr) documentation.
14
+ For detailed usage, refer to the [Streaming SSR](/guides/basic-features/render/streaming-ssr.md) documentation.
15
15
 
16
16
  To switch to traditional SSR mode (waiting for all data to load before returning at once), you can configure:
17
17
 
@@ -31,7 +31,7 @@ export default defineConfig({
31
31
 
32
32
  ## Enabling SSR
33
33
 
34
- Enabling SSR in Modern.js is straightforward. Simply set [`server.ssr`](/configure/app/server/ssr) to `true`:
34
+ Enabling SSR in Modern.js is straightforward. Simply set [`server.ssr`](/configure/app/server/ssr.md) to `true`:
35
35
 
36
36
  ```ts title="modern.config.ts"
37
37
  import { defineConfig } from '@modern-js/app-tools';
@@ -48,7 +48,7 @@ export default defineConfig({
48
48
  Modern.js provides Data Loader, enabling developers to fetch data isomorphically under both SSR and CSR. Each route module (such as `layout.tsx` and `page.tsx`) can define its own Data Loader:
49
49
 
50
50
  :::tip Learn More
51
- The following approach will not have streaming rendering effects. To achieve streaming rendering effects, refer to [Streaming SSR](/guides/basic-features/render/streaming-ssr).
51
+ The following approach will not have streaming rendering effects. To achieve streaming rendering effects, refer to [Streaming SSR](/guides/basic-features/render/streaming-ssr.md).
52
52
 
53
53
  :::
54
54
 
@@ -105,11 +105,10 @@ In Modern.js, if an application encounters an error during SSR, it automatically
105
105
 
106
106
  By default, if the `loader` function for a route throws an error, the framework renders the `<ErrorBoundary>` component directly on the server, displaying the error message. This is the default behavior of most frameworks.
107
107
 
108
- Modern.js also supports customizing the fallback strategy through the `loaderFailureMode` field in the [`server.ssr`](/configure/app/server/ssr) configuration. Setting this field to `clientRender` immediately falls back to CSR mode and re-fetches the data.
108
+ Modern.js also supports customizing the fallback strategy through the `loaderFailureMode` field in the [`server.ssr`](/configure/app/server/ssr.md) configuration. Setting this field to `clientRender` immediately falls back to CSR mode and re-fetches the data.
109
109
 
110
110
  If a Client Loader is defined for the route, it will be used to re-fetch the data. If re-rendering fails again, the `<ErrorBoundary>` component will be displayed.
111
111
 
112
- {/* Todo Add a diagram */}
113
112
 
114
113
  ### Component Rendering Error
115
114
 
@@ -141,17 +140,16 @@ In this case, Modern.js will fallback the page to CSR and use the existing data
141
140
  The behavior of component rendering errors is unaffected by `loaderFailureMode` and will not execute the Client Loader on the browser side.
142
141
  :::
143
142
 
144
- {/* Todo Add a diagram */}
145
143
 
146
144
  ## Logging and Monitoring
147
145
 
148
- import Monitor from '@site-docs-en/components/ssr-monitor';
149
-
150
- <Monitor />
146
+ :::tip
147
+ SSR monitoring has been integrated into the Monitors module, see [Monitors](/guides/advanced-features/server-monitor/monitors.md) for details.
148
+ :::
151
149
 
152
150
  ## Page Caching
153
151
 
154
- Modern.js has built-in caching capabilities. Refer to [Rendering Cache](/guides/basic-features/render/ssr-cache) for details.
152
+ Modern.js has built-in caching capabilities. Refer to [Rendering Cache](/guides/basic-features/render/ssr-cache.md) for details.
155
153
 
156
154
  ## Differences in Runtime Environment
157
155
 
@@ -202,7 +200,7 @@ if (true) {
202
200
  ```
203
201
 
204
202
  :::note
205
- For more information, see [Environment Variables](/guides/basic-features/env-vars).
203
+ For more information, see [Environment Variables](/guides/basic-features/env-vars.md).
206
204
  :::
207
205
 
208
206
  ### Side Effects in Dependencies
@@ -291,7 +289,7 @@ Wrap elements that should not be server-side rendered with the `NoSSR` component
291
289
 
292
290
  After modifying the code, refresh the page and notice that the previous warning has disappeared. Open the browser's developer tools and check the Network tab. The returned HTML document will not contain the content wrapped by the `NoSSR` component.
293
291
 
294
- In practical scenarios, some UI displays might be affected by the user's device, such as [UA](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) information. Modern.js also provides APIs like `use(RuntimeContext)`, allowing components to access complete request information and maintaining SSR and CSR rendering consistency. For detailed usage, please refer to [Runtime Context](/guides/basic-features/render/before-render#runtime-context).
292
+ In practical scenarios, some UI displays might be affected by the user's device, such as [UA](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) information. Modern.js also provides APIs like `use(RuntimeContext)`, allowing components to access complete request information and maintaining SSR and CSR rendering consistency. For detailed usage, please refer to [Runtime Context](/guides/basic-features/render/before-render.md#runtime-context).
295
293
 
296
294
  ### Attention to Memory Leaks
297
295
 
@@ -7,7 +7,7 @@ In traditional SSR rendering, the page is rendered all at once, requiring all da
7
7
  :::info Default Mode
8
8
  **Streaming SSR is the default rendering mode for Modern.js SSR**. When you enable SSR, streaming rendering is available without additional configuration.
9
9
 
10
- If you need to switch to traditional SSR mode (waiting for all data to load before returning at once), you can configure `server.ssr.mode` to `'string'`. For detailed information, refer to the [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr) documentation.
10
+ If you need to switch to traditional SSR mode (waiting for all data to load before returning at once), you can configure `server.ssr.mode` to `'string'`. For detailed information, refer to the [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr.md) documentation.
11
11
  :::
12
12
 
13
13
  Compared to traditional SSR rendering:
@@ -254,14 +254,11 @@ export const middleware = async (ctx, next) => {
254
254
  };
255
255
  ```
256
256
 
257
- import StreamSSRPerformance from '@site-docs-en/components/stream-ssr-performance';
258
-
259
- <StreamSSRPerformance />
260
257
 
261
258
  ## Related Documentation
262
259
 
263
- - [Rendering Mode Overview](/guides/basic-features/render/overview)
264
- - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr)
265
- - [Rendering Cache](/guides/basic-features/render/ssr-cache)
266
- - [React Server Components (RSC)](/guides/basic-features/render/rsc) - Use with Streaming SSR
260
+ - [Rendering Mode Overview](/guides/basic-features/render/overview.md)
261
+ - [Server-Side Rendering (SSR)](/guides/basic-features/render/ssr.md)
262
+ - [Rendering Cache](/guides/basic-features/render/ssr-cache.md)
263
+ - [React Server Components (RSC)](/guides/basic-features/render/rsc.md) - Use with Streaming SSR
267
264
  - [New Suspense SSR Architecture in React 18](https://github.com/reactwg/react-18/discussions/37) - React 18 Architecture Overview
@@ -1,11 +1,6 @@
1
- ---
2
- sidebar_position: 3
3
- ---
4
-
5
1
  # Config Routes
6
2
 
7
- By default, Modern.js recommends using [Convention Routes](./routes.mdx) as the way to define routes. At the same time, Modern.js also provides a config-based routing capability that can be used together with convention routes or used separately.
8
-
3
+ By default, Modern.js recommends using [Convention Routes](/guides/basic-features/routes/routes.md) as the way to define routes. At the same time, Modern.js also provides a config-based routing capability that can be used together with convention routes or used separately.
9
4
 
10
5
  ## When to Use Config Routes
11
6
 
@@ -34,15 +29,16 @@ export default defineRoutes(({ route, layout, page, $ }, fileRoutes) => {
34
29
  ### Function Signature Description
35
30
 
36
31
  `defineRoutes` accepts a callback function with two parameters:
32
+
37
33
  1. `routeFunctions`: An object containing `route`, `layout`, `page`, `$` functions
38
34
  2. `fileRoutes`: An array of route configurations generated by convention routes
39
35
 
40
36
  Basic signature of route functions:
37
+
41
38
  - First parameter: File path relative to `modern.routes.ts`
42
39
  - Second parameter: Route path (optional, must be a string)
43
40
  - Third parameter: Array of child routes (optional)
44
41
 
45
-
46
42
  ## Route Functions
47
43
 
48
44
  Modern.js provides four main route configuration functions:
@@ -50,6 +46,7 @@ Modern.js provides four main route configuration functions:
50
46
  :::tip Path Description
51
47
 
52
48
  The first parameter (path) of all route functions is a **relative path**, which will be concatenated with the parent path to generate the final route path:
49
+
53
50
  - **Root path**: `"/"` or `""` represents the root path of the current level
54
51
  - **Relative path**: Child route paths will be concatenated relative to the parent path
55
52
  - **Dynamic path**: Use `:param` syntax to represent dynamic parameters
@@ -93,6 +90,7 @@ export default defineRoutes(({ route }, fileRoutes) => {
93
90
  ```
94
91
 
95
92
  **Use cases**:
93
+
96
94
  - Quick route configuration without explicitly specifying page or layout
97
95
  - Simplify the complexity of route configuration
98
96
 
@@ -113,6 +111,7 @@ export default defineRoutes(({ layout, page }, fileRoutes) => {
113
111
  ```
114
112
 
115
113
  **Use cases**:
114
+
116
115
  - Need to explicitly specify a component as a layout component
117
116
  - Provide common layout structure for multiple pages
118
117
  - Need to share navigation, sidebar and other UI components across multiple routes
@@ -133,6 +132,7 @@ export default defineRoutes(({ layout, page }, fileRoutes) => {
133
132
  ```
134
133
 
135
134
  **Use cases**:
135
+
136
136
  - Need to explicitly specify a component as a page component
137
137
  - Ensure the component does not contain `<Outlet>` child component rendering
138
138
  - Provide clearer semantic expression
@@ -154,6 +154,7 @@ export default defineRoutes(({ layout, page, $ }, fileRoutes) => {
154
154
  ```
155
155
 
156
156
  **Use cases**:
157
+
157
158
  - Custom 404 pages
158
159
  - Handle all unmatched requests under specific paths
159
160
 
@@ -161,7 +162,6 @@ export default defineRoutes(({ layout, page, $ }, fileRoutes) => {
161
162
  The `$` function has the same functionality as the `$.tsx` file in convention routes, used to catch unmatched route requests.
162
163
  :::
163
164
 
164
-
165
165
  ## Configuring Routes
166
166
 
167
167
  ### Basic Example
@@ -195,6 +195,7 @@ export default defineRoutes(({ layout, page }, fileRoutes) => {
195
195
  ```
196
196
 
197
197
  The above configuration will generate:
198
+
198
199
  - `/login` → `auth/layout.tsx` + `login/page.tsx`
199
200
  - `/register` → `auth/layout.tsx` + `register/page.tsx`
200
201
 
@@ -210,7 +211,6 @@ export default defineRoutes(({ page }, fileRoutes) => {
210
211
  })
211
212
  ```
212
213
 
213
-
214
214
  ### Dynamic Routes
215
215
 
216
216
  Config routes support dynamic route parameters:
@@ -227,7 +227,6 @@ export default defineRoutes(({ page }, fileRoutes) => {
227
227
  })
228
228
  ```
229
229
 
230
-
231
230
  ## Automatic Route-Related File Discovery
232
231
 
233
232
  Config routes automatically discover component-related files without manual configuration. For any component file specified in `modern.routes.ts`, Modern.js will automatically find the following related files:
@@ -257,7 +256,7 @@ Modern.js will automatically find and load:
257
256
 
258
257
  :::tip
259
258
 
260
- For more detailed information about data fetching, please refer to the [Data Fetching](../data/data-fetch.mdx) documentation. For Loading component usage, please refer to [Convention Routes - Loading](./routes.mdx#loading-experimental).
259
+ For more detailed information about data fetching, please refer to the [Data Fetching](/guides/basic-features/data/data-fetch.md) documentation. For Loading component usage, please refer to [Convention Routes - Loading](/guides/basic-features/routes/routes.md#loading-experimental).
261
260
 
262
261
  :::
263
262