@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.100 → 3.5.0-ultramodern.102

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 (387) hide show
  1. package/bin/modern-bundle-docs.js +7 -0
  2. package/dist/cjs/bundleDocs.js +114 -0
  3. package/dist/esm/bundleDocs.mjs +62 -0
  4. package/dist/esm-node/bundleDocs.mjs +63 -0
  5. package/dist/types/bundleDocs.d.ts +20 -0
  6. package/docs/apis/app/{commands.mdx → commands.md} +35 -9
  7. package/docs/apis/app/hooks/api/{lambda.mdx → lambda.md} +2 -6
  8. package/docs/apis/app/hooks/config/{favicon.mdx → favicon.md} +1 -6
  9. package/docs/apis/app/hooks/config/{html.mdx → html.md} +1 -5
  10. package/docs/apis/app/hooks/config/{icon.mdx → icon.md} +1 -6
  11. package/docs/apis/app/hooks/config/{mock.mdx → mock.md} +1 -5
  12. package/docs/apis/app/hooks/config/{public.mdx → public.md} +0 -4
  13. package/docs/apis/app/hooks/config/{upload.mdx → upload.md} +3 -7
  14. package/docs/apis/app/hooks/{modern-config.mdx → modern-config.md} +1 -5
  15. package/docs/apis/app/hooks/server/{server.mdx → server.md} +1 -6
  16. package/docs/apis/app/hooks/{shared.mdx → shared.md} +0 -4
  17. package/docs/apis/app/hooks/src/{app.mdx → app.md} +2 -2
  18. package/docs/apis/app/hooks/src/{entry.mdx → entry.md} +1 -6
  19. package/docs/apis/app/hooks/src/{entry.server.mdx → entry.server.md} +0 -5
  20. package/docs/apis/app/hooks/src/{modern.runtime.mdx → modern.runtime.md} +1 -5
  21. package/docs/apis/app/hooks/src/{routes.mdx → routes.md} +3 -7
  22. package/docs/apis/app/hooks/src/{server.mdx → server.md} +1 -5
  23. package/docs/apis/app/runtime/bff/{use-backend-context.mdx → use-backend-context.md} +0 -3
  24. package/docs/apis/app/runtime/core/{create-root.mdx → create-root.md} +0 -3
  25. package/docs/apis/app/runtime/core/{render.mdx → render.md} +1 -4
  26. package/docs/apis/app/runtime/core/{runtime-context.mdx → runtime-context.md} +0 -4
  27. package/docs/apis/app/runtime/router/{router.mdx → router.md} +1 -6
  28. package/docs/apis/app/runtime/ssr/{no-ssr.mdx → no-ssr.md} +0 -3
  29. package/docs/apis/app/runtime/ssr/{renderStreaming.mdx → renderStreaming.md} +0 -4
  30. package/docs/apis/app/runtime/ssr/{renderString.mdx → renderString.md} +0 -4
  31. package/docs/apis/app/runtime/ssr/{requestHandler.mdx → requestHandler.md} +0 -4
  32. package/docs/apis/app/runtime/utility/{css-in-js.mdx → css-in-js.md} +0 -4
  33. package/docs/apis/app/runtime/utility/{head.mdx → head.md} +0 -3
  34. package/docs/apis/app/runtime/utility/{loadable.mdx → loadable.md} +0 -3
  35. package/docs/community/blog/2022-0708-updates.md +91 -0
  36. package/docs/community/blog/2022-0910-updates.md +76 -0
  37. package/docs/community/blog/overview.md +63 -0
  38. package/docs/community/blog/v2-release-note.md +238 -0
  39. package/docs/community/blog/v3-release-note.md +622 -0
  40. package/docs/community/contributing-guide.md +252 -0
  41. package/docs/community/releases.md +23 -0
  42. package/docs/community/showcase.md +24 -0
  43. package/docs/community/team.md +14 -0
  44. package/docs/configure/app/bff/{cross-project.mdx → cross-project.md} +4 -8
  45. package/docs/configure/app/bff/{effect.mdx → effect.md} +3 -7
  46. package/docs/configure/app/bff/{prefix.mdx → prefix.md} +3 -7
  47. package/docs/configure/app/bff/{runtime-framework.mdx → runtime-framework.md} +3 -7
  48. package/docs/configure/app/{builder-plugins.mdx → builder-plugins.md} +4 -8
  49. package/docs/configure/app/dev/{asset-prefix.mdx → asset-prefix.md} +4 -9
  50. package/docs/configure/app/dev/{before-start-url.mdx → before-start-url.md} +0 -4
  51. package/docs/configure/app/dev/{client.mdx → client.md} +3 -7
  52. package/docs/configure/app/dev/hmr.md +10 -0
  53. package/docs/configure/app/dev/{host.mdx → host.md} +0 -4
  54. package/docs/configure/app/dev/{https.mdx → https.md} +0 -4
  55. package/docs/configure/app/dev/{lazy-compilation.mdx → lazy-compilation.md} +2 -8
  56. package/docs/configure/app/dev/live-reload.md +10 -0
  57. package/docs/configure/app/dev/{mock-dir.mdx → mock-dir.md} +0 -4
  58. package/docs/configure/app/dev/progress-bar.md +19 -0
  59. package/docs/configure/app/dev/{server.mdx → server.md} +0 -4
  60. package/docs/configure/app/dev/{setup-middlewares.mdx → setup-middlewares.md} +3 -7
  61. package/docs/configure/app/dev/{start-url.mdx → start-url.md} +0 -5
  62. package/docs/configure/app/dev/{watch-files.mdx → watch-files.md} +3 -7
  63. package/docs/configure/app/dev/{write-to-disk.mdx → write-to-disk.md} +3 -7
  64. package/docs/configure/app/experiments/{source-build.mdx → source-build.md} +1 -3
  65. package/docs/configure/app/html/{app-icon.mdx → app-icon.md} +3 -7
  66. package/docs/configure/app/html/{crossorigin.mdx → crossorigin.md} +3 -7
  67. package/docs/configure/app/html/{favicon.mdx → favicon.md} +3 -7
  68. package/docs/configure/app/html/inject.md +10 -0
  69. package/docs/configure/app/html/{meta.mdx → meta.md} +3 -7
  70. package/docs/configure/app/html/{mount-id.mdx → mount-id.md} +3 -7
  71. package/docs/configure/app/html/output-structure.md +10 -0
  72. package/docs/configure/app/html/script-loading.md +10 -0
  73. package/docs/configure/app/html/{tags.mdx → tags.md} +3 -7
  74. package/docs/configure/app/html/{template-parameters.mdx → template-parameters.md} +3 -7
  75. package/docs/configure/app/html/template.md +10 -0
  76. package/docs/configure/app/html/title.md +18 -0
  77. package/docs/configure/app/output/asset-prefix.md +11 -0
  78. package/docs/configure/app/output/{assets-retry.mdx → assets-retry.md} +1 -5
  79. package/docs/configure/app/output/{charset.mdx → charset.md} +3 -7
  80. package/docs/configure/app/output/{clean-dist-path.mdx → clean-dist-path.md} +0 -4
  81. package/docs/configure/app/output/{convert-to-rem.mdx → convert-to-rem.md} +12 -16
  82. package/docs/configure/app/output/{copy.mdx → copy.md} +3 -7
  83. package/docs/configure/app/output/{css-modules.mdx → css-modules.md} +3 -7
  84. package/docs/configure/app/output/{data-uri-limit.mdx → data-uri-limit.md} +3 -7
  85. package/docs/configure/app/output/{disable-css-module-extension.mdx → disable-css-module-extension.md} +3 -7
  86. package/docs/configure/app/output/{disable-inline-runtime-chunk.mdx → disable-inline-runtime-chunk.md} +0 -4
  87. package/docs/configure/app/output/{disable-svgr.mdx → disable-svgr.md} +0 -4
  88. package/docs/configure/app/output/{disable-ts-checker.mdx → disable-ts-checker.md} +0 -4
  89. package/docs/configure/app/output/{dist-path.mdx → dist-path.md} +3 -11
  90. package/docs/configure/app/output/{enable-asset-manifest.mdx → enable-asset-manifest.md} +0 -4
  91. package/docs/configure/app/output/{enable-css-module-tsdeclaration.mdx → enable-css-module-tsdeclaration.md} +0 -4
  92. package/docs/configure/app/output/{enable-inline-route-manifests.mdx → enable-inline-route-manifests.md} +0 -4
  93. package/docs/configure/app/output/{externals.mdx → externals.md} +3 -7
  94. package/docs/configure/app/output/filename-hash.md +10 -0
  95. package/docs/configure/app/output/{filename.mdx → filename.md} +3 -7
  96. package/docs/configure/app/output/inject-styles.md +10 -0
  97. package/docs/configure/app/output/{inline-scripts.mdx → inline-scripts.md} +4 -8
  98. package/docs/configure/app/output/{inline-styles.mdx → inline-styles.md} +4 -8
  99. package/docs/configure/app/output/{legal-comments.mdx → legal-comments.md} +3 -7
  100. package/docs/configure/app/output/{minify.mdx → minify.md} +3 -7
  101. package/docs/configure/app/output/{override-browserslist.mdx → override-browserslist.md} +4 -8
  102. package/docs/configure/app/output/polyfill.md +12 -0
  103. package/docs/configure/app/output/{source-map.mdx → source-map.md} +3 -7
  104. package/docs/configure/app/output/{split-route-chunks.mdx → split-route-chunks.md} +0 -4
  105. package/docs/configure/app/output/{ssg.mdx → ssg.md} +3 -7
  106. package/docs/configure/app/output/{ssgByEntries.mdx → ssgByEntries.md} +1 -4
  107. package/docs/configure/app/output/{svg-default-export.mdx → svg-default-export.md} +0 -4
  108. package/docs/configure/app/output/{temp-dir.mdx → temp-dir.md} +0 -4
  109. package/docs/configure/app/performance/{build-cache.mdx → build-cache.md} +3 -7
  110. package/docs/configure/app/performance/{chunk-split.mdx → chunk-split.md} +3 -7
  111. package/docs/configure/app/performance/{dns-prefetch.mdx → dns-prefetch.md} +3 -7
  112. package/docs/configure/app/performance/preconnect.md +16 -0
  113. package/docs/configure/app/performance/{prefetch.mdx → prefetch.md} +3 -7
  114. package/docs/configure/app/performance/{preload.mdx → preload.md} +3 -7
  115. package/docs/configure/app/performance/{print-file-size.mdx → print-file-size.md} +3 -7
  116. package/docs/configure/app/performance/profile.md +10 -0
  117. package/docs/configure/app/performance/remove-console.md +10 -0
  118. package/docs/configure/app/performance/remove-moment-locale.md +10 -0
  119. package/docs/configure/app/performance/{rsdoctor.mdx → rsdoctor.md} +0 -4
  120. package/docs/configure/app/{plugins.mdx → plugins.md} +4 -4
  121. package/docs/configure/app/resolve/{alias-strategy.mdx → alias-strategy.md} +3 -7
  122. package/docs/configure/app/resolve/alias.md +9 -0
  123. package/docs/configure/app/resolve/{condition-names.mdx → condition-names.md} +3 -8
  124. package/docs/configure/app/resolve/{dedupe.mdx → dedupe.md} +3 -7
  125. package/docs/configure/app/resolve/{extensions.mdx → extensions.md} +3 -8
  126. package/docs/configure/app/runtime/{0-intro.mdx → 0-intro.md} +1 -4
  127. package/docs/configure/app/runtime/{plugins.mdx → plugins.md} +1 -1
  128. package/docs/configure/app/runtime/{router.mdx → router.md} +3 -7
  129. package/docs/configure/app/security/{check-syntax.mdx → check-syntax.md} +0 -4
  130. package/docs/configure/app/security/{nonce.mdx → nonce.md} +3 -7
  131. package/docs/configure/app/security/{sri.mdx → sri.md} +0 -4
  132. package/docs/configure/app/server/{base-url.mdx → base-url.md} +0 -4
  133. package/docs/configure/app/server/{port.mdx → port.md} +3 -7
  134. package/docs/configure/app/server/{public-routes.mdx → public-routes.md} +0 -4
  135. package/docs/configure/app/server/{routes.mdx → routes.md} +1 -5
  136. package/docs/configure/app/server/{rsc.mdx → rsc.md} +2 -6
  137. package/docs/configure/app/server/{ssr-by-entries.mdx → ssr-by-entries.md} +1 -5
  138. package/docs/configure/app/server/ssr.md +80 -0
  139. package/docs/configure/app/server/{tsconfig-path.mdx → tsconfig-path.md} +0 -4
  140. package/docs/configure/app/source/{alias-strategy.mdx → alias-strategy.md} +4 -8
  141. package/docs/configure/app/source/{alias.mdx → alias.md} +4 -8
  142. package/docs/configure/app/source/{config-dir.mdx → config-dir.md} +1 -5
  143. package/docs/configure/app/source/{decorators.mdx → decorators.md} +0 -4
  144. package/docs/configure/app/source/{define.mdx → define.md} +3 -7
  145. package/docs/configure/app/source/{disable-default-entries.mdx → disable-default-entries.md} +2 -6
  146. package/docs/{components/module-federation.mdx → configure/app/source/enable-async-entry.md} +47 -0
  147. package/docs/configure/app/source/{enable-async-pre-entry.mdx → enable-async-pre-entry.md} +0 -4
  148. package/docs/configure/app/source/{entries-dir.mdx → entries-dir.md} +0 -4
  149. package/docs/configure/app/source/{entries.mdx → entries.md} +1 -5
  150. package/docs/configure/app/source/{exclude.mdx → exclude.md} +4 -8
  151. package/docs/configure/app/source/{global-vars.mdx → global-vars.md} +0 -4
  152. package/docs/configure/app/source/{include.mdx → include.md} +4 -8
  153. package/docs/configure/app/source/{main-entry-name.mdx → main-entry-name.md} +0 -4
  154. package/docs/configure/app/source/{pre-entry.mdx → pre-entry.md} +3 -7
  155. package/docs/configure/app/source/{react-compiler.mdx → react-compiler.md} +0 -4
  156. package/docs/configure/app/source/{transform-import.mdx → transform-import.md} +3 -7
  157. package/docs/configure/app/{split-chunks.mdx → split-chunks.md} +3 -3
  158. package/docs/configure/app/tools/{autoprefixer.mdx → autoprefixer.md} +0 -4
  159. package/docs/configure/app/tools/{bundler-chain.mdx → bundler-chain.md} +0 -4
  160. package/docs/configure/app/tools/{css-extract.mdx → css-extract.md} +3 -7
  161. package/docs/configure/app/tools/{css-loader.mdx → css-loader.md} +3 -7
  162. package/docs/configure/app/tools/{dev-server.mdx → dev-server.md} +0 -4
  163. package/docs/configure/app/tools/{html-plugin.mdx → html-plugin.md} +3 -7
  164. package/docs/configure/app/tools/{less.mdx → less.md} +0 -4
  165. package/docs/configure/app/tools/{lightningcss-loader.mdx → lightningcss-loader.md} +3 -7
  166. package/docs/configure/app/tools/{minify-css.mdx → minify-css.md} +0 -4
  167. package/docs/configure/app/tools/{postcss.mdx → postcss.md} +3 -7
  168. package/docs/configure/app/tools/rspack.md +10 -0
  169. package/docs/configure/app/tools/{sass.mdx → sass.md} +0 -4
  170. package/docs/configure/app/tools/style-loader.md +10 -0
  171. package/docs/configure/app/tools/{swc.mdx → swc.md} +4 -8
  172. package/docs/configure/app/tools/{ts-checker.mdx → ts-checker.md} +20 -7
  173. package/docs/configure/app/{usage.mdx → usage.md} +1 -1
  174. package/docs/guides/advanced-features/bff/{cross-project.mdx → cross-project.md} +1 -2
  175. package/docs/guides/advanced-features/bff/{data-platform.mdx → data-platform.md} +0 -4
  176. package/docs/guides/advanced-features/bff/{extend-server.mdx → extend-server.md} +1 -1
  177. package/docs/guides/advanced-features/bff/frameworks.md +243 -0
  178. package/docs/guides/advanced-features/bff/{function.mdx → function.md} +60 -7
  179. package/docs/guides/advanced-features/bff/{operators.mdx → operators.md} +2 -77
  180. package/docs/{components/bff-upload.mdx → guides/advanced-features/bff/upload.md} +4 -0
  181. package/docs/guides/advanced-features/{bff.mdx → bff.md} +0 -4
  182. package/docs/guides/advanced-features/{build-performance.mdx → build-performance.md} +3 -7
  183. package/docs/guides/advanced-features/{compatibility.mdx → compatibility.md} +54 -15
  184. package/docs/guides/advanced-features/international/{advanced.mdx → advanced.md} +0 -4
  185. package/docs/guides/advanced-features/international/{api.mdx → api.md} +16 -20
  186. package/docs/guides/advanced-features/international/{best-practices.mdx → best-practices.md} +0 -4
  187. package/docs/guides/advanced-features/international/configuration.md +228 -0
  188. package/docs/guides/advanced-features/international/{locale-detection.mdx → locale-detection.md} +25 -29
  189. package/docs/guides/advanced-features/international/{quick-start.mdx → quick-start.md} +29 -13
  190. package/docs/guides/advanced-features/international/{resource-loading.mdx → resource-loading.md} +11 -15
  191. package/docs/guides/advanced-features/international/{routing.mdx → routing.md} +12 -16
  192. package/docs/guides/advanced-features/international.md +27 -0
  193. package/docs/guides/advanced-features/{low-level.mdx → low-level.md} +17 -21
  194. package/docs/guides/advanced-features/page-performance/{code-split.mdx → code-split.md} +2 -6
  195. package/docs/guides/advanced-features/page-performance/{inline-assets.mdx → inline-assets.md} +3 -7
  196. package/docs/guides/advanced-features/page-performance/{optimize-bundle.mdx → optimize-bundle.md} +4 -8
  197. package/docs/{components/internal-logger.mdx → guides/advanced-features/server-monitor/logger.md} +16 -0
  198. package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
  199. package/docs/guides/advanced-features/server-monitor/{monitors.mdx → monitors.md} +3 -3
  200. package/docs/guides/advanced-features/{source-build.mdx → source-build.md} +1 -5
  201. package/docs/guides/advanced-features/{web-server.mdx → web-server.md} +1 -9
  202. package/docs/guides/basic-features/{alias.mdx → alias.md} +3 -7
  203. package/docs/guides/basic-features/css/{css-in-js.mdx → css-in-js.md} +12 -9
  204. package/docs/guides/basic-features/css/{css-modules.mdx → css-modules.md} +3 -3
  205. package/docs/guides/basic-features/css/{css.mdx → css.md} +2 -6
  206. package/docs/guides/basic-features/data/{data-cache.mdx → data-cache.md} +1 -6
  207. package/docs/guides/basic-features/data/{data-fetch.mdx → data-fetch.md} +4 -8
  208. package/docs/guides/basic-features/data/{data-write.mdx → data-write.md} +6 -9
  209. package/docs/guides/basic-features/debug/{mock.mdx → mock.md} +1 -5
  210. package/docs/guides/basic-features/debug/{proxy.mdx → proxy.md} +1 -5
  211. package/docs/guides/basic-features/debug/{using-storybook.mdx → using-storybook.md} +20 -8
  212. package/docs/guides/basic-features/{deploy.mdx → deploy.md} +23 -13
  213. package/docs/guides/basic-features/{env-vars.mdx → env-vars.md} +8 -12
  214. package/docs/guides/basic-features/{html.mdx → html.md} +3 -7
  215. package/docs/guides/basic-features/{output-files.mdx → output-files.md} +6 -10
  216. package/docs/guides/basic-features/render/{before-render.mdx → before-render.md} +1 -1
  217. package/docs/guides/basic-features/render/overview.md +47 -0
  218. package/docs/guides/basic-features/render/{rsc.mdx → rsc.md} +12 -20
  219. package/docs/guides/basic-features/render/{ssg.mdx → ssg.md} +71 -10
  220. package/docs/guides/basic-features/render/{ssr-cache.mdx → ssr-cache.md} +5 -5
  221. package/docs/guides/basic-features/render/{ssr.mdx → ssr.md} +10 -12
  222. package/docs/guides/basic-features/render/{streaming-ssr.mdx → streaming-ssr.md} +5 -8
  223. package/docs/guides/basic-features/routes/{config-routes.mdx → config-routes.md} +10 -11
  224. package/docs/guides/basic-features/routes/{routes.mdx → routes.md} +8 -16
  225. package/docs/guides/basic-features/static-assets/{json-files.mdx → json-files.md} +0 -4
  226. package/docs/guides/basic-features/static-assets/{svg-assets.mdx → svg-assets.md} +3 -7
  227. package/docs/guides/basic-features/static-assets/{wasm-assets.mdx → wasm-assets.md} +1 -5
  228. package/docs/guides/basic-features/{static-assets.mdx → static-assets.md} +10 -14
  229. package/docs/guides/basic-features/testing/{playwright.mdx → playwright.md} +12 -3
  230. package/docs/guides/basic-features/testing/{rstest.mdx → rstest.md} +70 -11
  231. package/docs/guides/concept/{builder.mdx → builder.md} +3 -26
  232. package/docs/guides/concept/{entries.mdx → entries.md} +11 -17
  233. package/docs/guides/concept/{server.mdx → server.md} +3 -3
  234. package/docs/guides/get-started/{ai-coding-agents.mdx → ai-coding-agents.md} +4 -9
  235. package/docs/guides/get-started/glossary.md +63 -0
  236. package/docs/guides/get-started/{introduction.mdx → introduction.md} +1 -6
  237. package/docs/guides/get-started/quick-start.md +269 -0
  238. package/docs/guides/get-started/{tech-stack.mdx → tech-stack.md} +9 -15
  239. package/docs/guides/get-started/{ultramodern.mdx → ultramodern.md} +19 -24
  240. package/docs/guides/get-started/{upgrade.mdx → upgrade.md} +21 -12
  241. package/docs/guides/topic-detail/module-federation/{application.mdx → application.md} +3 -3
  242. package/docs/guides/topic-detail/module-federation/{deploy.mdx → deploy.md} +2 -2
  243. package/docs/guides/topic-detail/module-federation/{i18n.mdx → i18n.md} +14 -14
  244. package/docs/guides/topic-detail/module-federation/{introduce.mdx → introduce.md} +2 -3
  245. package/docs/guides/topic-detail/module-federation/{ssr.mdx → ssr.md} +12 -7
  246. package/docs/guides/topic-detail/module-federation/{usage.mdx → usage.md} +20 -3
  247. package/docs/guides/troubleshooting/{builder.mdx → builder.md} +10 -14
  248. package/docs/guides/troubleshooting/{cli.mdx → cli.md} +0 -4
  249. package/docs/guides/troubleshooting/{dependencies.mdx → dependencies.md} +7 -11
  250. package/docs/guides/troubleshooting/{hmr.mdx → hmr.md} +5 -9
  251. package/docs/guides/upgrade/{config.mdx → config.md} +8 -5
  252. package/docs/guides/upgrade/{entry.mdx → entry.md} +6 -6
  253. package/docs/guides/upgrade/{other.mdx → other.md} +8 -8
  254. package/docs/guides/upgrade/{overview.mdx → overview.md} +4 -4
  255. package/docs/guides/upgrade/{tailwindcss.mdx → tailwindcss.md} +0 -1
  256. package/docs/guides/upgrade/web-server.md +11 -11
  257. package/docs/index.md +33 -4
  258. package/docs/llms.txt +290 -0
  259. package/docs/plugin/cli-plugins/api.md +573 -0
  260. package/docs/plugin/cli-plugins/life-cycle.md +2 -0
  261. package/docs/plugin/introduction.md +152 -0
  262. package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
  263. package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
  264. package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
  265. package/docs/plugin/official/cli-plugins.md +4 -0
  266. package/docs/plugin/plugin-system.md +238 -0
  267. package/docs/plugin/runtime-plugins/api.md +194 -0
  268. package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
  269. package/docs/plugin/server-plugins/api.md +209 -0
  270. package/docs/plugin/server-plugins/life-cycle.md +13 -0
  271. package/docs/tutorials/examples/csr-auth.md +9 -0
  272. package/docs/tutorials/foundations/introduction.md +16 -0
  273. package/package.json +32 -14
  274. package/docs/_nav.json +0 -36
  275. package/docs/apis/_meta.json +0 -13
  276. package/docs/apis/app/hooks/_meta.json +0 -28
  277. package/docs/apis/app/hooks/config/_meta.json +0 -1
  278. package/docs/apis/app/runtime/_meta.json +0 -32
  279. package/docs/components/auto-upgrade.mdx +0 -0
  280. package/docs/components/build-output.mdx +0 -45
  281. package/docs/components/bundler.mdx +0 -3
  282. package/docs/components/convention-routing-motivation.mdx +0 -0
  283. package/docs/components/debug-app.mdx +0 -15
  284. package/docs/components/default-browserslist.mdx +0 -7
  285. package/docs/components/deploy-command.mdx +0 -14
  286. package/docs/components/deploy.mdx +0 -1
  287. package/docs/components/enable-bff-caution.mdx +0 -3
  288. package/docs/components/enable-bff.mdx +0 -56
  289. package/docs/components/enable-ssg.mdx +0 -49
  290. package/docs/components/entry-mode.mdx +0 -0
  291. package/docs/components/entry-scan-logic.mdx +0 -7
  292. package/docs/components/extend-bff-function.mdx +0 -3
  293. package/docs/components/hono.mdx +0 -120
  294. package/docs/components/init-app.mdx +0 -93
  295. package/docs/components/init-rspack-app.mdx +0 -5
  296. package/docs/components/internal-metrics.mdx +0 -20
  297. package/docs/components/international/custom-instance-code.mdx +0 -16
  298. package/docs/components/international/init-options-desc.mdx +0 -1
  299. package/docs/components/international/install-command.mdx +0 -10
  300. package/docs/components/international/instance-code.mdx +0 -16
  301. package/docs/components/international/introduce.mdx +0 -5
  302. package/docs/components/international/platform-support.mdx +0 -0
  303. package/docs/components/language-config.mdx +0 -9
  304. package/docs/components/micro-frontend.mdx +0 -6
  305. package/docs/components/micro-master-manifest-config.mdx +0 -15
  306. package/docs/components/micro-runtime-config.mdx +0 -17
  307. package/docs/components/new-entry-tooltip.mdx +0 -0
  308. package/docs/components/nodeVersion.mdx +0 -28
  309. package/docs/components/other-plugins.mdx +0 -0
  310. package/docs/components/output-asset-prefix-extend.mdx +0 -0
  311. package/docs/components/output-distpath-warning.mdx +0 -0
  312. package/docs/components/output-polyfill-extend.mdx +0 -1
  313. package/docs/components/prerequisites.mdx +0 -18
  314. package/docs/components/release-note.mdx +0 -1
  315. package/docs/components/routes-practice.mdx +0 -0
  316. package/docs/components/rsbuild-config-tooltip.mdx +0 -5
  317. package/docs/components/rsbuild.mdx +0 -3
  318. package/docs/components/rsc-deploy-tip.mdx +0 -1
  319. package/docs/components/rspack.mdx +0 -3
  320. package/docs/components/rspackTip.mdx +0 -7
  321. package/docs/components/runtime-cli-config.mdx +0 -0
  322. package/docs/components/serve-command.mdx +0 -22
  323. package/docs/components/ssr-monitor.mdx +0 -3
  324. package/docs/components/stream-ssr-performance.mdx +0 -0
  325. package/docs/components/swc.mdx +0 -3
  326. package/docs/components/tech-stack-node-framework.mdx +0 -1
  327. package/docs/components/turtorials-example-list.mdx +0 -2
  328. package/docs/components/ua-polyfill.mdx +0 -44
  329. package/docs/components/upgrade-browserslist.mdx +0 -0
  330. package/docs/components/upgrade-config-deploy.mdx +0 -0
  331. package/docs/components/upgrade-faq.mdx +0 -0
  332. package/docs/configure/_meta.json +0 -78
  333. package/docs/configure/app/dev/hmr.mdx +0 -14
  334. package/docs/configure/app/dev/live-reload.mdx +0 -14
  335. package/docs/configure/app/dev/progress-bar.mdx +0 -23
  336. package/docs/configure/app/html/inject.mdx +0 -14
  337. package/docs/configure/app/html/output-structure.mdx +0 -14
  338. package/docs/configure/app/html/script-loading.mdx +0 -14
  339. package/docs/configure/app/html/template.mdx +0 -14
  340. package/docs/configure/app/html/title.mdx +0 -22
  341. package/docs/configure/app/output/asset-prefix.mdx +0 -18
  342. package/docs/configure/app/output/filename-hash.mdx +0 -14
  343. package/docs/configure/app/output/inject-styles.mdx +0 -14
  344. package/docs/configure/app/output/polyfill.mdx +0 -18
  345. package/docs/configure/app/performance/preconnect.mdx +0 -20
  346. package/docs/configure/app/performance/profile.mdx +0 -14
  347. package/docs/configure/app/performance/remove-console.mdx +0 -14
  348. package/docs/configure/app/performance/remove-moment-locale.mdx +0 -14
  349. package/docs/configure/app/resolve/alias.mdx +0 -13
  350. package/docs/configure/app/server/ssr.mdx +0 -85
  351. package/docs/configure/app/source/enable-async-entry.mdx +0 -54
  352. package/docs/configure/app/tools/rspack.mdx +0 -14
  353. package/docs/configure/app/tools/style-loader.mdx +0 -14
  354. package/docs/guides/_meta.json +0 -37
  355. package/docs/guides/advanced-features/_meta.json +0 -32
  356. package/docs/guides/advanced-features/bff/_meta.json +0 -10
  357. package/docs/guides/advanced-features/bff/frameworks.mdx +0 -131
  358. package/docs/guides/advanced-features/bff/upload.mdx +0 -7
  359. package/docs/guides/advanced-features/international/_meta.json +0 -10
  360. package/docs/guides/advanced-features/international/configuration.mdx +0 -222
  361. package/docs/guides/advanced-features/international.mdx +0 -29
  362. package/docs/guides/advanced-features/page-performance/_meta.json +0 -1
  363. package/docs/guides/advanced-features/server-monitor/_meta.json +0 -1
  364. package/docs/guides/advanced-features/server-monitor/logger.mdx +0 -19
  365. package/docs/guides/advanced-features/server-monitor/metrics.mdx +0 -41
  366. package/docs/guides/basic-features/_meta.json +0 -49
  367. package/docs/guides/basic-features/css/_meta.json +0 -1
  368. package/docs/guides/basic-features/data/_meta.json +0 -1
  369. package/docs/guides/basic-features/debug/_meta.json +0 -1
  370. package/docs/guides/basic-features/render/_meta.json +0 -1
  371. package/docs/guides/basic-features/render/overview.mdx +0 -51
  372. package/docs/guides/basic-features/routes/_meta.json +0 -1
  373. package/docs/guides/basic-features/static-assets/_meta.json +0 -1
  374. package/docs/guides/basic-features/testing/_meta.json +0 -1
  375. package/docs/guides/concept/_meta.json +0 -1
  376. package/docs/guides/get-started/_meta.json +0 -9
  377. package/docs/guides/get-started/glossary.mdx +0 -63
  378. package/docs/guides/get-started/quick-start.mdx +0 -92
  379. package/docs/guides/topic-detail/_meta.json +0 -8
  380. package/docs/guides/topic-detail/module-federation/_meta.json +0 -1
  381. package/docs/guides/troubleshooting/_meta.json +0 -1
  382. package/docs/guides/upgrade/_meta.json +0 -1
  383. package/scripts/copy-main-doc.mjs +0 -50
  384. /package/docs/guides/advanced-features/bff/{sdk.mdx → sdk.md} +0 -0
  385. /package/docs/guides/advanced-features/page-performance/{react-compiler.mdx → react-compiler.md} +0 -0
  386. /package/docs/guides/basic-features/css/{tailwindcss.mdx → tailwindcss.md} +0 -0
  387. /package/docs/guides/basic-features/debug/{rsdoctor.mdx → rsdoctor.md} +0 -0
@@ -0,0 +1,27 @@
1
+ # Internationalization
2
+
3
+ `@modern-js/plugin-i18n` 是 Modern.js 的国际化插件,基于 [i18next](https://www.i18next.com/) 和 [react-i18next](https://react.i18next.com/) 构建。
4
+
5
+ - **插件本身**:负责与 Modern.js 框架的集成,如 SSR 语言传递、路由前缀处理等
6
+ - **i18next**:核心翻译能力,如 `t()` 函数、插值、复数、命名空间。
7
+ - **react-i18next**:React 组件和 Hook,如 `useTranslation`,实现与 React 生命周期的结合。
8
+
9
+ ## Where to start?
10
+
11
+ | What you want to do | Documentation |
12
+ | ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
13
+ | Integrate for the first time and run an example | [Quick Start](/guides/advanced-features/international/quick-start.md) |
14
+ | Learn all configuration options | [Configuration](/guides/advanced-features/international/configuration.md) |
15
+ | Detect language from URL / Cookie / Header | [Locale Detection](/guides/advanced-features/international/locale-detection.md) |
16
+ | Implement paths with locale prefixes, such as `/en/about` | [Routing Integration](/guides/advanced-features/international/routing.md) |
17
+ | Load translation resources from a remote service or platform | [Resource Loading -> Custom Backend](/guides/advanced-features/international/resource-loading.md#custom-backend) |
18
+ | SSR, multiple entries, or custom instances | [Advanced Usage](/guides/advanced-features/international/advanced.md) |
19
+ | Look up Hooks / components / type definitions | [API Reference](/guides/advanced-features/international/api.md) |
20
+
21
+ ## Core Capabilities
22
+
23
+ - **Locale detection**: Supports detection from URL path, Cookie, LocalStorage, request headers, browser settings, and other sources, with configurable priority.
24
+ - **Resource loading**: Supports HTTP static files, file system loading for SSR, custom SDK functions, and chained backend progressive loading.
25
+ - **Routing integration**: Automatically adds locale path prefixes such as `/en/about`, and provides the `I18nLink` component for locale-aware navigation.
26
+ - **SSR support**: Detects the language on the server and injects it into the page so the client can reuse it directly and avoid language flicker.
27
+ - **TypeScript support**: Provides complete type definitions and supports type-safe translation keys.
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 10
3
- ---
4
-
5
1
  # Low-Level Tools
6
2
 
7
3
  ## Usage
@@ -10,7 +6,7 @@ Modern.js internally integrates tools such as [TypeScript](https://www.typescrip
10
6
 
11
7
  Usually, the default configuration can meet most development needs. When there are special needs, it can be achieved through the underlying configuration.
12
8
 
13
- Take configuring Rspack as an example, just add [tools.rspack](/configure/app/tools/rspack) to the modern.config.ts:
9
+ Take configuring Rspack as an example, just add [tools.rspack](/configure/app/tools/rspack.md) to the modern.config.ts:
14
10
 
15
11
  ```ts title="modern.config.ts"
16
12
  export default defineConfig({
@@ -32,19 +28,19 @@ When the value is `Function`, the first parameter is the default configuration v
32
28
 
33
29
  Currently provided is as follows:
34
30
 
35
- | Tools | Config |
36
- | ------------------ | -------------------------------------------------------------------- |
37
- | Rspack | [tools.rspack](/configure/app/tools/rspack) |
38
- | Bundler Chain | [tools.bundlerChain](/configure/app/tools/bundler-chain) |
39
- | SWC | [tools.swc](/configure/app/tools/swc) |
40
- | TypeScript Checker | [tools.tsChecker](/configure/app/tools/ts-checker) |
41
- | PostCSS | [tools.postcss](/configure/app/tools/postcss) |
42
- | Less | [tools.less](/configure/app/tools/less) |
43
- | Sass | [tools.sass](/configure/app/tools/sass) |
44
- | CSS Extract | [tools.cssExtract](/configure/app/tools/css-extract) |
45
- | CSS Loader | [tools.cssLoader](/configure/app/tools/css-loader) |
46
- | Style Loader | [tools.styleLoader](/configure/app/tools/style-loader) |
47
- | Lightning CSS | [tools.lightningcssLoader](/configure/app/tools/lightningcss-loader) |
48
- | Minify CSS | [tools.minifyCss](/configure/app/tools/minify-css) |
49
- | Autoprefixer | [tools.autoprefixer](/configure/app/tools/autoprefixer) |
50
- | HTML Plugin | [tools.htmlPlugin](/configure/app/tools/html-plugin) |
31
+ | Tools | Config |
32
+ | ------------------ | ----------------------------------------------------------------------- |
33
+ | Rspack | [tools.rspack](/configure/app/tools/rspack.md) |
34
+ | Bundler Chain | [tools.bundlerChain](/configure/app/tools/bundler-chain.md) |
35
+ | SWC | [tools.swc](/configure/app/tools/swc.md) |
36
+ | TypeScript Checker | [tools.tsChecker](/configure/app/tools/ts-checker.md) |
37
+ | PostCSS | [tools.postcss](/configure/app/tools/postcss.md) |
38
+ | Less | [tools.less](/configure/app/tools/less.md) |
39
+ | Sass | [tools.sass](/configure/app/tools/sass.md) |
40
+ | CSS Extract | [tools.cssExtract](/configure/app/tools/css-extract.md) |
41
+ | CSS Loader | [tools.cssLoader](/configure/app/tools/css-loader.md) |
42
+ | Style Loader | [tools.styleLoader](/configure/app/tools/style-loader.md) |
43
+ | Lightning CSS | [tools.lightningcssLoader](/configure/app/tools/lightningcss-loader.md) |
44
+ | Minify CSS | [tools.minifyCss](/configure/app/tools/minify-css.md) |
45
+ | Autoprefixer | [tools.autoprefixer](/configure/app/tools/autoprefixer.md) |
46
+ | HTML Plugin | [tools.htmlPlugin](/configure/app/tools/html-plugin.md) |
@@ -1,13 +1,9 @@
1
- ---
2
- sidebar_position: 3
3
- ---
4
-
5
1
  # Code Splitting
6
2
 
7
3
  Code splitting is a common way to optimize frontend resource loading. This article will introduce the three types of code splitting supported by Modern.js:
8
4
 
9
5
  :::info
10
- When using Modern.js [Conventional routing](/guides/basic-features/routes/routes#conventional-routing). By default, code splitting is done according to the routing component, so you don't need to do it yourself.
6
+ When using Modern.js [Conventional routing](/guides/basic-features/routes/routes.md#conventional-routing). By default, code splitting is done according to the routing component, so you don't need to do it yourself.
11
7
  :::
12
8
 
13
9
  - dynamic `import`
@@ -78,4 +74,4 @@ However, it's important to note that any Loadable API in SSR does not support th
78
74
  If you want to use `<Suspense>` in CSR projects with React 17 and below, you can substitute `React.lazy` with `loadable.lazy`.
79
75
  :::
80
76
 
81
- For details, see [Loadable API](/apis/app/runtime/utility/loadable).
77
+ For details, see [Loadable API](/apis/app/runtime/utility/loadable.md).
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 13
3
- ---
4
-
5
1
  # Inline Static Assets
6
2
 
7
3
  Inline static assets refer to the practice of including the content of a static asset directly in a HTML or JS file, instead of linking to an external file. This can improve the performance of a website by reducing the number of HTTP requests that the browser has to make to load the page.
@@ -14,7 +10,7 @@ Modern.js will automatically inline static assets that are less than 10KB, but s
14
10
 
15
11
  By default, Modern.js will inline assets when the file size of is less than a threshold (the default is 10KB). When inlined, the asset will be converted to a Base64 encoded string and will no longer send a separate HTTP request. When the file size is greater than this threshold, it is loaded as a separate file with a separate HTTP request.
16
12
 
17
- The threshold can be modified with the [output.dataUriLimit](/configure/app/output/data-uri-limit) config. For example, set the threshold of images to 5000 Bytes, and set media assets not to be inlined:
13
+ The threshold can be modified with the [output.dataUriLimit](/configure/app/output/data-uri-limit.md) config. For example, set the threshold of images to 5000 Bytes, and set media assets not to be inlined:
18
14
 
19
15
  ```ts
20
16
  export default {
@@ -102,7 +98,7 @@ Excluding assets from inlining will increase the number of assets that the Web A
102
98
 
103
99
  In addition to inlining static assets into JS files, Modern.js also supports inlining JS files into HTML files.
104
100
 
105
- Just enable the [output.inlineScripts](/configure/app/output/inline-scripts) config, and the generated JS files will not be written into the output directory, but will be directly inlined to the corresponding in the HTML file.
101
+ Just enable the [output.inlineScripts](/configure/app/output/inline-scripts.md) config, and the generated JS files will not be written into the output directory, but will be directly inlined to the corresponding in the HTML file.
106
102
 
107
103
  ```ts
108
104
  export default {
@@ -120,7 +116,7 @@ Inline JS files may cause the single HTML file to be too large, and it will brea
120
116
 
121
117
  You can also inline CSS files into HTML files.
122
118
 
123
- Just enable the [output.inlineStyles](/configure/app/output/inline-styles) config, the generated CSS file will not be written into the output directory, but will be directly inlined to the corresponding in the HTML file.
119
+ Just enable the [output.inlineStyles](/configure/app/output/inline-styles.md) config, the generated CSS file will not be written into the output directory, but will be directly inlined to the corresponding in the HTML file.
124
120
 
125
121
  ```ts
126
122
  export default {
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 13
3
- ---
4
-
5
1
  # Bundle Size Optimization
6
2
 
7
3
  Bundle size optimization is an important part of optimizing your production environment because it directly affects the user experience. In this document, we will introduce some common bundle size optimization methods in Modern.js.
@@ -46,7 +42,7 @@ This will generate a bundle analysis report to help you identify large dependenc
46
42
 
47
43
  Modern.js will compile the code according to the project's Browserslist config, and inject some Polyfills. If the project does not need to be compatible with legacy browsers, you can adjust the Browserslist and drop some legacy browsers, thereby reducing the compilation overhead on syntax and polyfill.
48
44
 
49
- Modern.js's default [`output.overrideBrowserslist`](/configure/app/output/override-browserslist.html) config is:
45
+ Modern.js's default [`output.overrideBrowserslist`](/configure/app/output/override-browserslist.md) config is:
50
46
 
51
47
  ```js
52
48
  ['chrome >= 87', 'edge >= 88', 'firefox >= 78', 'safari >= 14'];
@@ -59,12 +55,12 @@ For example, if you only need to be compatible with browsers above Chrome 100, y
59
55
  ```
60
56
 
61
57
  :::tip
62
- Please read the [Browserslist configuration](/guides/advanced-features/compatibility.html) chapter to know more about the usage of Browserslist.
58
+ Please read the [Browserslist configuration](/guides/advanced-features/compatibility.md) chapter to know more about the usage of Browserslist.
63
59
  :::
64
60
 
65
61
  ## Usage polyfill
66
62
 
67
- When it is clear that third-party dependencies do not require additional polyfills, you can set [output.polyfill](/configure/app/output/polyfill.html) to `usage`.
63
+ When it is clear that third-party dependencies do not require additional polyfills, you can set [output.polyfill](/configure/app/output/polyfill.md) to `usage`.
68
64
 
69
65
  In `usage` mode, Modern.js analyzes the syntax used in the source code and injects the required polyfill code on demand to reduce the size of polyfill.
70
66
 
@@ -77,7 +73,7 @@ export default {
77
73
  ```
78
74
 
79
75
  :::tip
80
- Please read the [Browser Compatibility](/guides/advanced-features/compatibility) chapter to know more about the usage of Browserslist.
76
+ Please read the [Browser Compatibility](/guides/advanced-features/compatibility.md) chapter to know more about the usage of Browserslist.
81
77
  :::
82
78
 
83
79
  ## Image Compression
@@ -1,3 +1,19 @@
1
+ # Logs Events
2
+
3
+ Log events are distributed by Modern.js as events of type `log`.
4
+
5
+ ## Built-in Events
6
+
7
+ Based on server-side runtime logic, Modern.js provides the following log events:
8
+
9
+ | Stage | Message | Level |
10
+ | -------------- | --------------------------------------------- | ----- |
11
+ | RENDER\_HTML | App Render To HTML | error |
12
+ | RENDER\_STREAM | An error occurs during streaming SSR | error |
13
+ | RENDER\_SHELL | An error occurs during streaming render shell | error |
14
+
15
+ ## Built-in Monitor
16
+
1
17
  In Modern.js, log events are handled by `LoggerMonitor`, which outputs logs to the console.
2
18
 
3
19
  :::info
@@ -0,0 +1,58 @@
1
+ # Metrics Events
2
+
3
+ Metric events are distributed by Monitors as events of type `timing` or `counter`.
4
+
5
+ ## Built-in Events
6
+
7
+ When SSR is enabled, we need to monitor server-side phase durations and have the capability to diagnose server-side issues.
8
+
9
+ Based on server-side runtime logic, Modern.js provides the following metric events:
10
+
11
+ | Key | Description |
12
+ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
13
+ | server-handle-request | Modern.js Server request handling duration |
14
+ | ssr-render-shell | \[SSR] When using Streaming SSR, React renders a shell for early streaming. This marks shell rendering completion time |
15
+ | ssr-render-html | \[SSR] Time taken by React to render component tree to HTML (typically under 50ms) |
16
+ | server-middleware | Total execution time of Modern.js custom server middlewares |
17
+ | server-loader | Server-side Data Loader total duration |
18
+ | server-loader-#id | Individual Data Loader durations on server-side |
19
+ | server-loader-navigation | Server-side Data Loader duration during client navigation |
20
+
21
+ Modern.js server workflow diagram:
22
+
23
+ ![server](https://lf3-static.bytednsdoc.com/obj/eden-cn/eeeh7uhbepxlpe/edenx-website/e374def0-c179-40aa-9cfe-e82e181663b1.jpeg)
24
+
25
+ ## Built-in Monitor
26
+
27
+ In Modern.js, metric events are also handled by `LoggerMonitor`, which outputs metrics to the console in a specific format.
28
+
29
+ :::info
30
+ The built-in `LoggerMonitor` depends on the [rslog](https://www.npmjs.com/package/rslog) library.
31
+ :::
32
+
33
+ The `rslog` instance initialized in Modern.js outputs logs at `debug` level and above in development environment by default, and outputs all logs in production environment. In the built-in `LoggerMonitor`, all metric events are output as Debug logs. Therefore, if you want to view metric event information in the development environment, you need to add additional environment variables.
34
+
35
+ Developers can add the environment variable `DEBUG=true` when running the `dev` command. If running normally, after accessing, you can see the following output in the console:
36
+
37
+ ```shell
38
+ > Local: http://localhost:8080/
39
+ > press h + enter to show shortcuts
40
+
41
+ debug SSR Debug - server-loader, cost: 2.000094, req.url = /
42
+ debug SSR Debug - ssr-prerender, cost: 6.99997, req.url = /
43
+ debug SSR Debug - ssr-render-html, cost: 0.999927, req.url = /
44
+ debug Debug - server-handle-request, cost: 19.999981, req.url = /
45
+ debug --> GET / 200 90ms
46
+ ```
47
+
48
+ ## Server-Timing
49
+
50
+ Modern.js injects phase metrics as Server-Timing headers into HTML responses.
51
+
52
+ Developers can retrieve these metrics using the [Performance API](https://developer.mozilla.org/en-US/docs/Web/API/Performance) in browsers:
53
+
54
+ ```ts
55
+ const navigation = performance.getEntriesByType('navigation')[0];
56
+ const serverTiming = navigation.serverTiming;
57
+ console.log(serverTiming);
58
+ ```
@@ -68,12 +68,12 @@ export interface Monitors {
68
68
 
69
69
  Modern.js comes with a built-in default Monitor, where different events trigger different behaviors in the built-in Monitor. For more details, see:
70
70
 
71
- - [Log Event](/guides/advanced-features/server-monitor/logger)
72
- - [Metrics Event](/guides/advanced-features/server-monitor/metrics)
71
+ - [Log Event](/guides/advanced-features/server-monitor/logger.md)
72
+ - [Metrics Event](/guides/advanced-features/server-monitor/metrics.md)
73
73
 
74
74
  ## Register Monitors
75
75
 
76
- Developers can register their own Monitors using the `push` API, but this can only be done in [server middleware](/guides/advanced-features/web-server#unstable-middleware) or [server plugins](/plugin/server-plugins/api). Registration is not available in Data Loaders, components, or init functions.
76
+ Developers can register their own Monitors using the `push` API, but this can only be done in [server middleware](/guides/advanced-features/web-server.md#unstable-middleware) or [server plugins](/plugin/server-plugins/api.md). Registration is not available in Data Loaders, components, or init functions.
77
77
 
78
78
  ```ts title="server/modern.server.ts"
79
79
  import {
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 11
3
- ---
4
-
5
1
  # Source Code Build Mode
6
2
 
7
3
  The source code build mode is used in the monorepo development scenario, allowing developers to directly reference the source code of other sub-projects within the monorepo for development.
@@ -68,7 +64,7 @@ The disadvantages are:
68
64
 
69
65
  ### Enabling Configuration
70
66
 
71
- You can enable source code build mode by setting [experiments.sourceBuild](/configure/app/experiments/source-build.html) to `true`.
67
+ You can enable source code build mode by setting [experiments.sourceBuild](/configure/app/experiments/source-build.md) to `true`.
72
68
 
73
69
  ```ts
74
70
  export default {
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 16
3
- ---
4
-
5
1
  # Custom Web Server
6
2
 
7
3
  Modern.js encapsulates most server-side capabilities required by projects, typically eliminating the need for server-side development. However, in certain scenarios such as user authentication, request preprocessing, or adding page skeletons, custom server-side logic may still be necessary.
@@ -72,11 +68,7 @@ In the `server/modern.server.ts` file, you can add the following configurations
72
68
 
73
69
  In the **Plugin**, you can define **Middleware** and **RenderMiddleware**. The middleware loading process is illustrated in the following diagram:
74
70
 
75
- <img
76
- src="https://lf3-static.bytednsdoc.com/obj/eden-cn/10eh7nuhpenuhog/server-md-wf.png"
77
- style={{ width: '100%', maxWidth: '540px' }}
78
- />
79
-
71
+ ![](https://lf3-static.bytednsdoc.com/obj/eden-cn/10eh7nuhpenuhog/server-md-wf.png)
80
72
  ### Basic Configuration
81
73
 
82
74
  ```ts title="server/modern.server.ts"
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 4
3
- ---
4
-
5
1
  # Path Alias
6
2
 
7
3
  Path aliases allow developers to define aliases for modules, making it easier to reference them in code. This can be useful when you want to use a short, easy-to-remember name for a module instead of a long, complex path.
@@ -11,7 +7,7 @@ For example, if you frequently reference the `src/common/request.ts` module in y
11
7
  In Modern.js, there are two ways to set up path aliases:
12
8
 
13
9
  - Through the `paths` configuration in `tsconfig.json`.
14
- - Through the [source.alias](/configure/app/source/alias) configuration.
10
+ - Through the [source.alias](/configure/app/source/alias.md) configuration.
15
11
 
16
12
  ## Using `tsconfig.json`'s `paths` Configuration
17
13
 
@@ -37,7 +33,7 @@ You can refer to the [TypeScript - paths](https://www.typescriptlang.org/tsconfi
37
33
 
38
34
  ## Use `source.alias` Configuration
39
35
 
40
- Modern.js provides the [source.alias](/configure/app/source/alias) configuration option. You can configure this option using an object or a function.
36
+ Modern.js provides the [source.alias](/configure/app/source/alias.md) configuration option. You can configure this option using an object or a function.
41
37
 
42
38
  ### Use Cases
43
39
 
@@ -84,7 +80,7 @@ export default {
84
80
 
85
81
  The `paths` configuration in `tsconfig.json` takes precedence over the `source.alias` configuration. When a path matches the rules defined in both `paths` and `source.alias`, the value defined in `paths` will be used.
86
82
 
87
- You can adjust the priority of these two options using [source.aliasStrategy](/configure/app/source/alias-strategy).
83
+ You can adjust the priority of these two options using [source.aliasStrategy](/configure/app/source/alias-strategy.md).
88
84
 
89
85
  ## Default Aliases
90
86
 
@@ -10,15 +10,18 @@ The Modern.js plugin `@modern-js/plugin-styled-components` provides support for
10
10
 
11
11
  First, you need to install the `styled-components` plugin dependency and the `styled-components` library:
12
12
 
13
- import { PackageManagerTabs } from '@theme';
14
-
15
- <PackageManagerTabs
16
- command={{
17
- npm: 'npm install @modern-js/plugin-styled-components styled-components -D',
18
- yarn: 'yarn add @modern-js/plugin-styled-components styled-components -D',
19
- pnpm: 'pnpm install @modern-js/plugin-styled-components styled-components -D',
20
- }}
21
- />
13
+
14
+ ```sh [npm]
15
+ npm install @modern-js/plugin-styled-components styled-components -D
16
+ ```
17
+
18
+ ```sh [yarn]
19
+ yarn add @modern-js/plugin-styled-components styled-components -D
20
+ ```
21
+
22
+ ```sh [pnpm]
23
+ pnpm install @modern-js/plugin-styled-components styled-components -D
24
+ ```
22
25
 
23
26
  Then configure the `styled-components` plugin in `modern.config.ts`:
24
27
 
@@ -38,7 +38,7 @@ export default () => {
38
38
 
39
39
  By default, only files ending in `*.module.css` are treated CSS Modules.
40
40
 
41
- If you want to treat all CSS files in the source directory as CSS Modules, you can enable the [output.disableCssModuleExtension](/configure/app/output/disable-css-module-extension) config, for example:
41
+ If you want to treat all CSS files in the source directory as CSS Modules, you can enable the [output.disableCssModuleExtension](/configure/app/output/disable-css-module-extension.md) config, for example:
42
42
 
43
43
  ```ts
44
44
  export default {
@@ -63,7 +63,7 @@ We do not recommend enabling this config, because after enabling disableCssModul
63
63
 
64
64
  By default, only files ending in `*.module.css` are treated CSS Modules.
65
65
 
66
- If you want to enable CSS Modules only for specified style files, you can configure [output.cssModules](/configure/app/output/css-modules), for example:
66
+ If you want to enable CSS Modules only for specified style files, you can configure [output.cssModules](/configure/app/output/css-modules.md), for example:
67
67
 
68
68
  ```ts
69
69
  export default {
@@ -149,7 +149,7 @@ After adding the type declaration, if the type error still exists, you can try t
149
149
 
150
150
  Although the above method can provide the type of CSS Modules, it cannot accurately prompt which classNames are exported by a certain CSS file.
151
151
 
152
- Modern.js supports generating accurate type declarations for CSS Modules, you only need to enable the [output.enableCssModuleTSDeclaration](/configure/app/output/enable-css-module-tsdeclaration) config, and then execute the build, Modern.js will generate type declaration files for all CSS Modules.
152
+ Modern.js supports generating accurate type declarations for CSS Modules, you only need to enable the [output.enableCssModuleTSDeclaration](/configure/app/output/enable-css-module-tsdeclaration.md) config, and then execute the build, Modern.js will generate type declaration files for all CSS Modules.
153
153
 
154
154
  ```ts
155
155
  export default {
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 1
3
- ---
4
-
5
1
  # Styling
6
2
 
7
3
  Modern.js has built-in a variety of commonly used CSS solutions, including Less / Sass / Stylus preprocessors, PostCSS, CSS Modules, CSS-in-JS, and Tailwind CSS.
@@ -10,7 +6,7 @@ Modern.js has built-in a variety of commonly used CSS solutions, including Less
10
6
 
11
7
  Modern.js has built-in popular community CSS preprocessors, including Less and Sass.
12
8
 
13
- By default, you don't need to configure Less and Sass. If you have custom loader configuration requirements, you can set them up by configuring [tools.less](/configure/app/tools/less) and [tools.sass](/configure/app/tools/sass).
9
+ By default, you don't need to configure Less and Sass. If you have custom loader configuration requirements, you can set them up by configuring [tools.less](/configure/app/tools/less.md) and [tools.sass](/configure/app/tools/sass.md).
14
10
 
15
11
  You can also use Stylus in Modern.js by installing the Stylus plugin provided by Rsbuild. For usage, please refer to [Stylus Plugin](https://v2.rsbuild.rs/plugins/list/plugin-stylus).
16
12
 
@@ -22,7 +18,7 @@ Please refer to [Rsbuild - Using PostCSS](https://v2.rsbuild.rs/guide/styling/cs
22
18
 
23
19
  ## Using Lightning CSS
24
20
 
25
- Modern.js supports using [Lightning CSS](https://lightningcss.dev/) to convert CSS code. This feature can be turned on by configuring [tools.lightningcssLoader](/configure/app/tools/lightningcss-loader).
21
+ Modern.js supports using [Lightning CSS](https://lightningcss.dev/) to convert CSS code. This feature can be turned on by configuring [tools.lightningcssLoader](/configure/app/tools/lightningcss-loader.md).
26
22
 
27
23
  Please refer to [Rsbuild - Using Lightning CSS](https://v2.rsbuild.rs/guide/styling/css-usage#lightning-css) for detailed usage.
28
24
 
@@ -1,11 +1,6 @@
1
- ---
2
- title: Data Caching
3
- sidebar_position: 4
4
- ---
5
-
6
1
  # Data Caching
7
2
 
8
- The `cache` function allows you to cache the results of data fetching or computation, Compared to full-page [rendering cache](/guides/basic-features/render/ssr-cache), it provides more fine-grained control over data granularity and is applicable to various scenarios such as Client-Side Rendering (CSR), Server-Side Rendering (SSR), and API services (BFF).
3
+ The `cache` function allows you to cache the results of data fetching or computation, Compared to full-page [rendering cache](/guides/basic-features/render/ssr-cache.md), it provides more fine-grained control over data granularity and is applicable to various scenarios such as Client-Side Rendering (CSR), Server-Side Rendering (SSR), and API services (BFF).
9
4
 
10
5
  ## Basic Usage
11
6
 
@@ -1,14 +1,10 @@
1
- ---
2
- sidebar_position: 3
3
- ---
4
-
5
1
  # Data Fetching
6
2
 
7
3
  Modern.js provides out-of-the-box data fetching capabilities. Developers can use these APIs to fetch data in their projects. It's important to note that these APIs do not help the application make requests but assist developers in managing data better and improving project performance.
8
4
 
9
5
  ## What is Data Loader
10
6
 
11
- Modern.js recommends managing routes using [conventional routing](/guides/basic-features/routes/routes). Each route component (`layout.ts`, `page.ts`, or `$.tsx`) can have a same-named `.data` file. These files can export a `loader` function, known as Data Loader, which executes before the corresponding route component renders to provide data for the component. Here is an example:
7
+ Modern.js recommends managing routes using [conventional routing](/guides/basic-features/routes/routes.md). Each route component (`layout.ts`, `page.ts`, or `$.tsx`) can have a same-named `.data` file. These files can export a `loader` function, known as Data Loader, which executes before the corresponding route component renders to provide data for the component. Here is an example:
12
8
 
13
9
  ```bash
14
10
  .
@@ -54,7 +50,7 @@ In a CSR environment, the `loader` function executes on the browser side and can
54
50
 
55
51
  In an SSR environment, the `loader` function only executes on the server side for initial page loads and when navigating. Here it can call any Node.js APIs, and any dependencies or code used won't be included in the client-side bundle.
56
52
 
57
- When navigating on the client side, based on [conventional routing](/guides/basic-features/routes/routes), Modern.js supports parallel execution (requests) of all `loader` functions. For example, when visiting `/user/profile`, the `loader` functions under `/user` and `/user/profile` will execute in parallel, solving the request-render waterfall issue and significantly improving page performance.
53
+ When navigating on the client side, based on [conventional routing](/guides/basic-features/routes/routes.md), Modern.js supports parallel execution (requests) of all `loader` functions. For example, when visiting `/user/profile`, the `loader` functions under `/user` and `/user/profile` will execute in parallel, solving the request-render waterfall issue and significantly improving page performance.
58
54
 
59
55
  :::tip
60
56
  The `loader` is responsible for data fetching, with route parameters and request information provided as input. Generally, there's no need to access browser APIs. It's recommended to keep it environment-agnostic for future SSR compatibility.
@@ -66,7 +62,7 @@ The `loader` function has two parameters used for getting route parameters and r
66
62
 
67
63
  ### params
68
64
 
69
- `params` is the dynamic route segments when the route is a [dynamic route](/guides/basic-features/routes/routes#dynamic-routes), which passed as parameters to the `loader` function:
65
+ `params` is the dynamic route segments when the route is a [dynamic route](/guides/basic-features/routes/routes.md#dynamic-routes), which passed as parameters to the `loader` function:
70
66
 
71
67
  ```tsx title="routes/user/[id]/page.data.ts"
72
68
  import { LoaderFunctionArgs } from '@modern-js/runtime/router';
@@ -153,7 +149,7 @@ export async function loader() {
153
149
 
154
150
  ### Basic Usage
155
151
 
156
- In a `loader` function, you can handle errors by using `throw error` or `throw response`. When an error is thrown in the `loader` function, Modern.js will stop executing the remaining code in the current `loader` and switch the front-end UI to the defined [`ErrorBoundary`](/guides/basic-features/routes/routes#error-handling) component:
152
+ In a `loader` function, you can handle errors by using `throw error` or `throw response`. When an error is thrown in the `loader` function, Modern.js will stop executing the remaining code in the current `loader` and switch the front-end UI to the defined [`ErrorBoundary`](/guides/basic-features/routes/routes.md#error-handling) component:
157
153
 
158
154
  ```tsx
159
155
  // routes/user/profile/page.data.ts
@@ -1,10 +1,6 @@
1
- ---
2
- sidebar_position: 4
3
- ---
4
-
5
1
  # Data Writing
6
2
 
7
- In the [Data Fetching](/guides/basic-features/data/data-fetch) section, we introduced how Modern.js fetches data. This might bring up two questions:
3
+ In the [Data Fetching](/guides/basic-features/data/data-fetch.md) section, we introduced how Modern.js fetches data. This might bring up two questions:
8
4
 
9
5
  1. How do I update the data returned by the Data Loader?
10
6
  2. How do I send new data to the server?
@@ -13,7 +9,7 @@ In Modern.js, you can use Data Action to address these scenarios.
13
9
 
14
10
  ## What is Data Action
15
11
 
16
- Modern.js recommends managing routes using [conventional routing](/guides/basic-features/routes/routes). Each route component (`layout.ts`, `page.ts`, or `$.tsx`) can have a same-named `.data` file. These files can export an `action` function, known as Data Action, which developers can call at an appropriate time:
12
+ Modern.js recommends managing routes using [conventional routing](/guides/basic-features/routes/routes.md). Each route component (`layout.ts`, `page.ts`, or `$.tsx`) can have a same-named `.data` file. These files can export an `action` function, known as Data Action, which developers can call at an appropriate time:
17
13
 
18
14
  ```bash
19
15
  .
@@ -69,7 +65,7 @@ export default () => {
69
65
  }
70
66
  ```
71
67
 
72
- After executing `submit`, the defined `action` function will be triggered. You can get the submitted data from the [parameters](/guides/basic-features/data/data-write.html#parameters) in the `action` function and ultimately send the data to the server.
68
+ After executing `submit`, the defined `action` function will be triggered. You can get the submitted data from the [parameters](/guides/basic-features/data/data-write.md#parameters) in the `action` function and ultimately send the data to the server.
73
69
 
74
70
  Once the `action` function executes, Modern.js will automatically run the `loader` function code to update the data and view accordingly.
75
71
 
@@ -81,7 +77,7 @@ Similar to the `loader` function, the `action` function takes two parameters: `p
81
77
 
82
78
  ### params
83
79
 
84
- `params` is the dynamic route segments when the route is a [dynamic route](/guides/basic-features/routes/routes#dynamic-routes), which are passed as parameters to the `action` function:
80
+ `params` is the dynamic route segments when the route is a [dynamic route](/guides/basic-features/routes/routes.md#dynamic-routes), which are passed as parameters to the `action` function:
85
81
 
86
82
  ```tsx title="routes/user/[id]/page.data.ts"
87
83
  import { ActionFunctionArgs } from '@modern-js/runtime/router;
@@ -134,6 +130,7 @@ submit(null, { method: "post", action: "/logout" });
134
130
  ```
135
131
 
136
132
  The `submit` function takes two parameters. The first parameter is the `formData` passed to the server. The second parameter is an optional object where:
133
+
137
134
  - `method` corresponds to the form submission method. In most data writing scenarios, you can set the `method` to `post`.
138
135
  - `action` specifies the route component to trigger the Data Action. If not provided, it defaults to the current route component's action. For example, executing submit in `user/page.tsx` or its sub-components will trigger the action defined in `user/page.data.ts`.
139
136
 
@@ -223,7 +220,7 @@ In Modern.js, we aim to help developers automatically synchronize client and ser
223
220
 
224
221
  ![state manage](https://lf3-static.bytednsdoc.com/obj/eden-cn/ulkl/ljhwZthlaukjlkulzlp/action-state-manage1.png)
225
222
 
226
- If the shared data in your project mainly comes from the server, you don't need to introduce a client-side state management library. Use Data Loader to request data and share it in sub-components via [`useRouteLoaderData`](/guides/basic-features/data/data-fetch). Use Data Action to modify and synchronize the server's state.
223
+ If the shared data in your project mainly comes from the server, you don't need to introduce a client-side state management library. Use Data Loader to request data and share it in sub-components via [`useRouteLoaderData`](/guides/basic-features/data/data-fetch.md). Use Data Action to modify and synchronize the server's state.
227
224
 
228
225
  ## CSR and SSR
229
226
 
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 5
3
- ---
4
-
5
1
  # Data Mocking
6
2
 
7
3
  Modern.js allows you to easily generate mock data so that the front-end can develop independently without depending on the back-end API.
@@ -20,7 +16,7 @@ By convention, when there is an `index.ts` in the `config/mock/` directory, mock
20
16
  └── modern.config.ts
21
17
  ```
22
18
 
23
- You can use [`dev.mockDir`](/configure/app/dev/mock-dir) to place the
19
+ You can use [`dev.mockDir`](/configure/app/dev/mock-dir.md) to place the
24
20
  Mock entry in another directory:
25
21
 
26
22
  ```js title="modern.config.ts"
@@ -1,10 +1,6 @@
1
- ---
2
- sidebar_position: 6
3
- ---
4
-
5
1
  # Local Proxy
6
2
 
7
- Modern.js provides a way to configure the development proxy in [`dev.server.proxy`](/configure/app/dev/server).
3
+ Modern.js provides a way to configure the development proxy in [`dev.server.proxy`](/configure/app/dev/server.md).
8
4
 
9
5
  For example, to proxy the local interface to another address:
10
6
 
@@ -1,9 +1,3 @@
1
- ---
2
- sidebar_position: 15
3
- ---
4
-
5
- import { PackageManagerTabs } from '@theme'
6
-
7
1
  # Using Storybook
8
2
 
9
3
  [Storybook](https://storybook.js.org/) is a tool specifically designed for component debugging. It provides:
@@ -26,7 +20,26 @@ This document only provides the simplest usage. For more information, please ref
26
20
 
27
21
  ## Installation
28
22
 
29
- <PackageManagerTabs command="install @rsbuild/core storybook-builder-rsbuild storybook-addon-modernjs -D" />
23
+
24
+ ```sh [npm]
25
+ npm install @rsbuild/core storybook-builder-rsbuild storybook-addon-modernjs -D
26
+ ```
27
+
28
+ ```sh [yarn]
29
+ yarn add @rsbuild/core storybook-builder-rsbuild storybook-addon-modernjs -D
30
+ ```
31
+
32
+ ```sh [pnpm]
33
+ pnpm add @rsbuild/core storybook-builder-rsbuild storybook-addon-modernjs -D
34
+ ```
35
+
36
+ ```sh [bun]
37
+ bun add @rsbuild/core storybook-builder-rsbuild storybook-addon-modernjs -D
38
+ ```
39
+
40
+ ```sh [deno]
41
+ deno add npm:@rsbuild/core npm:storybook-builder-rsbuild npm:storybook-addon-modernjs -D
42
+ ```
30
43
 
31
44
  You need to install `@rsbuild/core` in your project, otherwise the plugin may not work properly.
32
45
 
@@ -43,7 +56,6 @@ const config: StorybookConfig = {
43
56
  export default config
44
57
  ```
45
58
 
46
-
47
59
  ## BFF Integrated Calls in Storybook
48
60
 
49
61
  When you want to call BFF APIs directly in Storybook components (for example `/api/**`), start the BFF service and configure a proxy in Storybook's dev server to avoid CORS issues.