@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,8 +1,3 @@
1
- ---
2
- sidebar_position: 2
3
- title: Creating Extensible BFF Functions
4
- ---
5
-
6
1
  # Creating Extensible BFF Functions
7
2
 
8
3
  The previous section showed how to export a simple BFF function in a file. In more complex scenarios, each BFF function may need to do independent type validation, pre-logic, etc.
@@ -31,10 +26,6 @@ A BFF function created by the `Api` function consists of the following parts:
31
26
 
32
27
  The server can define the input parameters and types of the interface. Based on the types, the server will automatically perform type validation at runtime:
33
28
 
34
- import BFFOperatorCode from '@site-docs/components/bff-operator-code';
35
-
36
- <BFFOperatorCode>
37
-
38
29
  ```typescript title="api/lambda/user.ts"
39
30
  import { Api, Post, Query, Data } from '@modern-js/plugin-bff/hono-server';
40
31
  import { z } from 'zod';
@@ -59,8 +50,6 @@ export const addUser = Api(
59
50
  );
60
51
  ```
61
52
 
62
- </BFFOperatorCode>
63
-
64
53
  :::caution Note
65
54
  When using the `Api` function, ensure that all code logic is placed inside the function. Operations such as `console.log` or using `fs` outside the function are not allowed.
66
55
 
@@ -86,8 +75,6 @@ addUser({
86
75
 
87
76
  As shown in the example below, you can specify the route and HTTP Method through the `Get` function:
88
77
 
89
- <BFFOperatorCode>
90
-
91
78
  ```typescript title="api/lambda/user.ts"
92
79
  import { Api, Get, Query, Data } from '@modern-js/plugin-bff/hono-server';
93
80
 
@@ -100,12 +87,8 @@ export const getHello = Api(
100
87
  );
101
88
  ```
102
89
 
103
- </BFFOperatorCode>
104
-
105
90
  When the route is not specified, the interface route is defined according to the file convention. As shown in the example below, with the function writing method, there is a code path `api/lambda/user.ts`, which will register the corresponding interface `/api/user`.
106
91
 
107
- <BFFOperatorCode>
108
-
109
92
  ```typescript title="api/lambda/user.ts"
110
93
  import { Api, Get, Query, Data } from '@modern-js/plugin-bff/hono-server';
111
94
 
@@ -113,10 +96,8 @@ import { Api, Get, Query, Data } from '@modern-js/plugin-bff/hono-server';
113
96
  export const get = Api(Query(UserSchema), async ({ query }) => query);
114
97
  ```
115
98
 
116
- </BFFOperatorCode>
117
-
118
99
  :::info
119
- Modern.js recommends defining interfaces based on file conventions to keep routes clear in the project. For specific rules, see [Function Routes](/guides/advanced-features/bff/function#function-routes).
100
+ Modern.js recommends defining interfaces based on file conventions to keep routes clear in the project. For specific rules, see [Function Routes](/guides/advanced-features/bff/function.md#function-routes).
120
101
 
121
102
  :::
122
103
 
@@ -140,8 +121,6 @@ The following are request-related operators. Operators can be combined, but must
140
121
 
141
122
  Using the `Query` function, you can define the type of query. After using the `Query` function, the query information can be obtained in the input parameters of the interface processing function, and the `query` field can be added to the input parameters of the frontend request function:
142
123
 
143
- <BFFOperatorCode>
144
-
145
124
  ```typescript title="api/lambda/user.ts"
146
125
  // Server-side code
147
126
  import { Api, Query } from '@modern-js/plugin-bff/hono-server';
@@ -157,8 +136,6 @@ export const get = Api(Query(UserSchema), async ({ query }) => ({
157
136
  }));
158
137
  ```
159
138
 
160
- </BFFOperatorCode>
161
-
162
139
  ```typescript title="routes/page.tsx"
163
140
  // Frontend code
164
141
  get({
@@ -173,8 +150,6 @@ get({
173
150
 
174
151
  URL query parameters are strings by default. If you need numeric types, you need to use `z.coerce.number()` for type conversion:
175
152
 
176
- <BFFOperatorCode>
177
-
178
153
  ```typescript title="api/lambda/user.ts"
179
154
  import { Api, Get, Query } from '@modern-js/plugin-bff/hono-server';
180
155
  import { z } from 'zod';
@@ -198,8 +173,6 @@ export const getUser = Api(
198
173
  );
199
174
  ```
200
175
 
201
- </BFFOperatorCode>
202
-
203
176
  :::caution Note
204
177
  URL query parameters are all string types. If you need numeric types, you need to use `z.coerce.number()` for conversion, not `z.number()` directly.
205
178
  :::
@@ -213,8 +186,6 @@ If you use the Data function, you must follow the HTTP protocol. When the HTTP M
213
186
 
214
187
  :::
215
188
 
216
- <BFFOperatorCode>
217
-
218
189
  ```typescript title="api/lambda/user.ts"
219
190
  import { Api, Data } from '@modern-js/plugin-bff/hono-server';
220
191
  import { z } from 'zod';
@@ -230,8 +201,6 @@ export const post = Api(Data(DataSchema), async ({ data }) => ({
230
201
  }));
231
202
  ```
232
203
 
233
- </BFFOperatorCode>
234
-
235
204
  ```typescript title="routes/page.tsx"
236
205
  // Frontend code
237
206
  post({
@@ -246,8 +215,6 @@ post({
246
215
 
247
216
  Route parameters can implement dynamic routes and get parameters from the path. You can specify path parameters through `Params<T>(schema: z.ZodType<T>)`
248
217
 
249
- <BFFOperatorCode>
250
-
251
218
  ```typescript
252
219
  import { Api, Get, Params } from '@modern-js/plugin-bff/hono-server';
253
220
  import { z } from 'zod';
@@ -265,14 +232,10 @@ export const queryUser = Api(
265
232
  );
266
233
  ```
267
234
 
268
- </BFFOperatorCode>
269
-
270
235
  ### Request Headers
271
236
 
272
237
  You can define the request headers required by the interface through the `Headers<T>(schema: z.ZodType<T>)` function and pass the request headers through integrated calls:
273
238
 
274
- <BFFOperatorCode>
275
-
276
239
  ```typescript
277
240
  import { Api, Headers } from '@modern-js/plugin-bff/hono-server';
278
241
  import { z } from 'zod';
@@ -286,8 +249,6 @@ export const queryUser = Api(Headers(headerSchema), async ({ headers }) => ({
286
249
  }));
287
250
  ```
288
251
 
289
- </BFFOperatorCode>
290
-
291
252
  ## Parameter Validation
292
253
 
293
254
  As mentioned earlier, when using functions such as `Query` and `Data` to define interfaces, the server will automatically validate the data passed from the frontend based on the schema passed to these functions.
@@ -333,8 +294,6 @@ The `Middleware` operator can be configured multiple times, and the execution or
333
294
 
334
295
  :::
335
296
 
336
- <BFFOperatorCode>
337
-
338
297
  ```typescript
339
298
  import { Api, Query, Middleware } from '@modern-js/plugin-bff/hono-server';
340
299
  import { z } from 'zod';
@@ -356,8 +315,6 @@ export const get = Api(
356
315
  );
357
316
  ```
358
317
 
359
- </BFFOperatorCode>
360
-
361
318
  ## Data Transformation Pipe
362
319
 
363
320
  The `Pipe` operator can pass in a function that executes after middleware and validation are completed. It can be used in the following scenarios:
@@ -373,8 +330,6 @@ The `Pipe` operator can be configured multiple times. The execution order of fun
373
330
 
374
331
  :::
375
332
 
376
- <BFFOperatorCode>
377
-
378
333
  ```typescript
379
334
  import { Api, Query, Pipe } from '@modern-js/plugin-bff/hono-server';
380
335
  import { z } from 'zod';
@@ -401,12 +356,8 @@ export const get = Api(
401
356
  );
402
357
  ```
403
358
 
404
- </BFFOperatorCode>
405
-
406
359
  Also,
407
360
 
408
- <BFFOperatorCode>
409
-
410
361
  ```typescript
411
362
  import { Api, Query, Pipe } from '@modern-js/plugin-bff/hono-server';
412
363
  import { z } from 'zod';
@@ -436,12 +387,8 @@ export const get = Api(
436
387
  );
437
388
  ```
438
389
 
439
- </BFFOperatorCode>
440
-
441
390
  If you need to do more custom operations on the response, you can pass a function to the `end` function. The input parameter of the function is Hono's Context (`c`), and you can operate on `c.req` and `c.res`:
442
391
 
443
- <BFFOperatorCode>
444
-
445
392
  ```typescript
446
393
  import { Api, Query, Pipe } from '@modern-js/plugin-bff/hono-server';
447
394
  import { z } from 'zod';
@@ -474,8 +421,6 @@ export const get = Api(
474
421
  );
475
422
  ```
476
423
 
477
- </BFFOperatorCode>
478
-
479
424
  ## Response
480
425
 
481
426
  The following are response-related operators. Through response operators, you can process responses.
@@ -484,8 +429,6 @@ The following are response-related operators. Through response operators, you ca
484
429
 
485
430
  You can specify the status code returned by the interface through the `HttpCode(statusCode: number)` function
486
431
 
487
- <BFFOperatorCode>
488
-
489
432
  ```typescript
490
433
  import { Api, Query, Data, HttpCode } from '@modern-js/plugin-bff/hono-server';
491
434
  import { z } from 'zod';
@@ -514,14 +457,10 @@ export const post = Api(
514
457
  );
515
458
  ```
516
459
 
517
- </BFFOperatorCode>
518
-
519
460
  ### Response Headers SetHeaders
520
461
 
521
462
  Supports setting response headers through the `SetHeaders(headers: Record<string, string>)` function
522
463
 
523
- <BFFOperatorCode>
524
-
525
464
  ```typescript
526
465
  import { Api, Get, SetHeaders } from '@modern-js/plugin-bff/hono-server';
527
466
 
@@ -534,14 +473,10 @@ export default Api(
534
473
  );
535
474
  ```
536
475
 
537
- </BFFOperatorCode>
538
-
539
476
  ### Redirect
540
477
 
541
478
  Supports redirecting the interface through `Redirect(url: string)`:
542
479
 
543
- <BFFOperatorCode>
544
-
545
480
  ```typescript
546
481
  import { Api, Get, Redirect } from '@modern-js/plugin-bff/hono-server';
547
482
 
@@ -552,13 +487,9 @@ export default Api(
552
487
  );
553
488
  ```
554
489
 
555
- </BFFOperatorCode>
556
-
557
490
  ## Request Context
558
491
 
559
- As mentioned above, through operators, you can get `query`, `data`, `params`, etc. in the input parameters of the interface processing function. But sometimes we need to get more request context information. At this time, we can get it through [`useHonoContext`](/apis/app/runtime/bff/use-backend-context):
560
-
561
- <BFFOperatorCode>
492
+ As mentioned above, through operators, you can get `query`, `data`, `params`, etc. in the input parameters of the interface processing function. But sometimes we need to get more request context information. At this time, we can get it through [`useHonoContext`](/apis/app/runtime/bff/use-backend-context.md):
562
493
 
563
494
  ```typescript title="api/lambda/user.ts"
564
495
  import { Api, Get, Query } from '@modern-js/plugin-bff/hono-server';
@@ -584,8 +515,6 @@ export const queryUser = Api(
584
515
  );
585
516
  ```
586
517
 
587
- </BFFOperatorCode>
588
-
589
518
  ## FAQ
590
519
 
591
520
  ### Can I use TypeScript instead of zod schema
@@ -607,8 +536,6 @@ For specific comparisons of different solutions, you can refer to [Why Use Zod](
607
536
 
608
537
  In frontend development, some server interfaces (such as some configuration interfaces) have long response times, but actually don't need to be updated for a long time. For such interfaces, we can set HTTP cache to improve page performance:
609
538
 
610
- <BFFOperatorCode>
611
-
612
539
  ```typescript
613
540
  import { Api, SetHeaders } from '@modern-js/plugin-bff/hono-server';
614
541
 
@@ -625,5 +552,3 @@ export const get = Api(
625
552
  },
626
553
  );
627
554
  ```
628
-
629
- </BFFOperatorCode>
@@ -1,3 +1,7 @@
1
+ # File Upload
2
+
3
+ BFF combined with runtime framework provides file upload capabilities, supporting integrated calls and pure function manual calls.
4
+
1
5
  ### BFF Function
2
6
 
3
7
  First, create the `api/lambda/upload.ts` file:
@@ -1,7 +1,3 @@
1
- ---
2
- title: BFF
3
- ---
4
-
5
1
  # BFF
6
2
 
7
3
  BFF (Backends for Frontends) is an architectural pattern primarily used to address issues of data aggregation in front-end and back-end collaboration. Under the BFF architecture, front-end applications do not communicate directly with backend services. Instead, they interact with backend services through a dedicated BFF middleware layer, custom-made for the front end.
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 12
3
- ---
4
-
5
1
  # Improve Build Performance
6
2
 
7
3
  Modern.js optimizes build performance by default, but as the project becomes larger, you may encounter some build performance problems.
@@ -9,7 +5,7 @@ Modern.js optimizes build performance by default, but as the project becomes lar
9
5
  This document provides some optional speed-up strategies, developers can choose some of them to improve the build performance.
10
6
 
11
7
  :::tip 📢 Notice
12
- The strategies in [Bundle Size Optimization](/guides/advanced-features/page-performance/optimize-bundle) can also be used to improve build performance, so we won't repeat them here.
8
+ The strategies in [Bundle Size Optimization](/guides/advanced-features/page-performance/optimize-bundle.md) can also be used to improve build performance, so we won't repeat them here.
13
9
  :::
14
10
 
15
11
  ## General optimization strategy
@@ -96,7 +92,7 @@ export default {
96
92
 
97
93
  ### Adjust Browserslist for development
98
94
 
99
- This strategy is similar to ["Adjust Browserslist"](/guides/advanced-features/page-performance/optimize-bundle#adjust-browserslist), the difference is that we can set different browserslist for development and production environment, thereby reducing the compilation overhead in the development environment.
95
+ This strategy is similar to ["Adjust Browserslist"](/guides/advanced-features/page-performance/optimize-bundle.md#adjust-browserslist), the difference is that we can set different browserslist for development and production environment, thereby reducing the compilation overhead in the development environment.
100
96
 
101
97
  For example, you can add the following config to `package.json`, which means that only the latest browsers are compatible in the development environment, and the actual browsers are compatible in the production environment:
102
98
 
@@ -131,4 +127,4 @@ export default {
131
127
  };
132
128
  ```
133
129
 
134
- See [output.sourceMap](/en/configure/app/output/source-map.html) for details.
130
+ See [output.sourceMap](/configure/app/output/source-map.md) for details.
@@ -1,7 +1,3 @@
1
- ---
2
- sidebar_position: 6
3
- ---
4
-
5
1
  # Browser Compatibility
6
2
 
7
3
  ## Browserslist Configuration
@@ -14,10 +10,12 @@ Modern.js supports setting the range of browsers that a web application needs to
14
10
 
15
11
  When you create a new Modern.js project, a default `.browserslistrc` configuration is included, which indicates that JavaScript code will be compiled to ES6 format.
16
12
 
17
- import DefaultBrowserslist from '@site-docs/components/default-browserslist';
18
-
19
- <DefaultBrowserslist />
20
-
13
+ ```yaml title=".browserslistrc"
14
+ chrome >= 87
15
+ edge >= 88
16
+ firefox >= 78
17
+ safari >= 14
18
+ ```
21
19
 
22
20
  When the `overrideBrowserslist` configuration is not specified in the project, this `.browserslistrc` file will take effect.
23
21
 
@@ -36,7 +34,7 @@ You can also configure browserslist by setting the `browserslist` field in the `
36
34
 
37
35
  ### Method 3: Configure via `output.overrideBrowserslist`
38
36
 
39
- You can also configure browserslist by setting the [`output.overrideBrowserslist`](/configure/app/output/override-browserslist) field in the `modern.config.js` file:
37
+ You can also configure browserslist by setting the [`output.overrideBrowserslist`](/configure/app/output/override-browserslist.md) field in the `modern.config.js` file:
40
38
 
41
39
  ```js title="modern.config.js"
42
40
  export default {
@@ -59,9 +57,6 @@ In most scenarios, it is recommended to prioritize using the `.browserslistrc` f
59
57
  Please refer to [Rsbuild - Setting Browser Range](https://v2.rsbuild.rs/zh/guide/advanced/browserslist) for more information.
60
58
  :::
61
59
 
62
- import UpgradeBrowserslist from '@site-docs-en/components/upgrade-browserslist';
63
-
64
- <UpgradeBrowserslist />
65
60
 
66
61
  ## Polyfill
67
62
 
@@ -72,10 +67,54 @@ Modern.js by default injects corresponding polyfill code at compile time through
72
67
  By default, it will include the necessary polyfill code based on the project's Browserslist settings, so you generally do not need to worry about polyfill issues for your project source code and third-party dependencies. However, since some unused polyfill code is included, the final bundle size may increase.
73
68
 
74
69
  :::info
75
- For scenarios where certain third-party dependencies clearly do not require polyfills, you can set [`output.polyfill`](/configure/app/output/polyfill) to `usage`. This way, Babel will only inject polyfill code based on the syntax used in the code during compilation.
70
+ For scenarios where certain third-party dependencies clearly do not require polyfills, you can set [`output.polyfill`](/configure/app/output/polyfill.md) to `usage`. This way, Babel will only inject polyfill code based on the syntax used in the code during compilation.
76
71
 
77
72
  :::
78
73
 
79
- import UAPolyfill from '@site-docs/components/ua-polyfill';
74
+ ### 运行时按需 Polyfill
75
+
76
+ Modern.js 中还提供了基于浏览器 [UA](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/User-Agent) 信息的运行时按需 Polyfill 方案,相比于 Babel 优势如下:
77
+
78
+ - 不会插入到代码中,只根据访问页面的设备,按需下发 Polyfill 代码 ,减少整体代码体积。
79
+ - 相同浏览器会公用一份 Polyfill 代码。因此,随着项目越来越多,基于 UA 的 Polyfill 代码下发速度会越来越快,综合速度超过常规方案。
80
+
81
+ Modern.js 提供了 `@modern-js/plugin-polyfill` 插件来实现该功能,可以通过安装该插件来开启该功能:
82
+
83
+
84
+ ```sh [npm]
85
+ npm install @modern-js/plugin-polyfill
86
+ ```
87
+
88
+ ```sh [yarn]
89
+ yarn add @modern-js/plugin-polyfill
90
+ ```
91
+
92
+ ```sh [pnpm]
93
+ pnpm add @modern-js/plugin-polyfill
94
+ ```
95
+
96
+ 然后在 `modern.config.ts` 中注册 Polyfill 插件:
97
+
98
+ ```ts title="modern.config.ts"
99
+ import { polyfillPlugin } from '@modern-js/plugin-polyfill';
100
+
101
+ export default defineConfig({
102
+ plugins: [..., polyfillPlugin()],
103
+ });
104
+ ```
105
+
106
+ 配置 `output.polyfill` 为 `ua` 并且执行 `pnpm run build && pnpm run serve` 启动服务器后,访问页面可以看到 HTML 产物中包含如下脚本:
80
107
 
81
- <UAPolyfill />
108
+ ```js
109
+ <script src="/__polyfill__" crossorigin></script>
110
+ ```
111
+
112
+ 在 Chrome 51 下访问页面可以看到 `http://localhost:8080/__polyfill__` 返回内容如下:
113
+
114
+ ![ua-polyfill](https://lf3-static.bytednsdoc.com/obj/eden-cn/aphqeh7uhohpquloj/modern-js/docs/ua-polyfill.png)
115
+
116
+ :::caution 注意
117
+ 该功能只有在使用 Modern.js 内置的 Web Server 时才会生效。
118
+
119
+ 如果有自定义模版的需求,请参考 [HTML 模板](/zh/guides/basic-features/html.md)。通过 `html.template` 或 `tools.html` 手动修改模版时,可能会导致该功能无法正确生效。
120
+ :::
@@ -1,7 +1,3 @@
1
- ---
2
- title: Advanced Usage
3
- ---
4
-
5
1
  # Advanced Usage
6
2
 
7
3
  ## SSR Scenarios
@@ -1,7 +1,3 @@
1
- ---
2
- title: API Reference
3
- ---
4
-
5
1
  # API Reference
6
2
 
7
3
  ## useModernI18n
@@ -10,15 +6,15 @@ title: API Reference
10
6
 
11
7
  ### Return Value
12
8
 
13
- | Field | Type | Description |
14
- | --- | --- | --- |
15
- | `language` | `string` | Current language code |
16
- | `changeLanguage` | `(lang: string) => Promise<void>` | Switches language |
17
- | `supportedLanguages` | `string[]` | Supported language list, from `localeDetection.languages` |
18
- | `localisedUrls` | `boolean \| Record<string, Record<string, string>>` | Localised URL mapping from `localeDetection.localisedUrls` |
19
- | `isLanguageSupported` | `(lang: string) => boolean` | Checks whether a language is in the supported list |
20
- | `isResourcesReady` | `boolean` | Whether translation resources for the current language have finished loading |
21
- | `i18nInstance` | `I18nInstance` | i18next instance for advanced scenarios |
9
+ | Field | Type | Description |
10
+ | --------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------- |
11
+ | `language` | `string` | Current language code |
12
+ | `changeLanguage` | `(lang: string) => Promise<void>` | Switches language |
13
+ | `supportedLanguages` | `string[]` | Supported language list, from `localeDetection.languages` |
14
+ | `localisedUrls` | `boolean \| Record<string, Record<string, string>>` | Localised URL mapping from `localeDetection.localisedUrls` |
15
+ | `isLanguageSupported` | `(lang: string) => boolean` | Checks whether a language is in the supported list |
16
+ | `isResourcesReady` | `boolean` | Whether translation resources for the current language have finished loading |
17
+ | `i18nInstance` | `I18nInstance` | i18next instance for advanced scenarios |
22
18
 
23
19
  When `localePathRedirect` is enabled and `localisedUrls` is omitted, Modern.js keeps prefix-only paths such as `/en/about`. Translated path segments are enabled only by a non-empty `localisedUrls` map. Route generation validates every localisable path and every configured language only while that map is enabled.
24
20
 
@@ -88,13 +84,13 @@ A route link component with a locale prefix.
88
84
 
89
85
  ### Props
90
86
 
91
- | Prop | Type | Required | Description |
92
- | --- | --- | --- | --- |
93
- | `to` | `string` | Yes | Target path. Do not include the locale prefix |
94
- | `children` | `React.ReactNode` | Yes | Link content |
95
- | `replace` | `boolean` | No | Uses `history.replace` instead of `push` |
96
- | `state` | `any` | No | State passed to the target route |
97
- | Other Link props | - | No | Passed to the active router link when a router is available |
87
+ | Prop | Type | Required | Description |
88
+ | ---------------- | ----------------- | -------- | ----------------------------------------------------------- |
89
+ | `to` | `string` | Yes | Target path. Do not include the locale prefix |
90
+ | `children` | `React.ReactNode` | Yes | Link content |
91
+ | `replace` | `boolean` | No | Uses `history.replace` instead of `push` |
92
+ | `state` | `any` | No | State passed to the target route |
93
+ | Other Link props | - | No | Passed to the active router link when a router is available |
98
94
 
99
95
  ### Usage
100
96
 
@@ -1,7 +1,3 @@
1
- ---
2
- title: Best Practices
3
- ---
4
-
5
1
  # Best Practices
6
2
 
7
3
  ## Resource File Organization