@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.99 → 3.8.1-ultramodern.1
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.
- package/bin/modern-bundle-docs.js +7 -0
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +73 -11
- package/dist/cjs/bundleDocs.js +114 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +1 -1
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +94 -18
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/cjs/ultramodern-release-envelope/framework-output.js +109 -57
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +63 -10
- package/dist/esm/bundleDocs.mjs +62 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/esm/ultramodern-release-envelope/framework-output.mjs +107 -58
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +63 -10
- package/dist/esm-node/bundleDocs.mjs +63 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +107 -58
- package/dist/types/builder/generator/getBuilderEnvironments.d.ts +29 -0
- package/dist/types/bundleDocs.d.ts +20 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +1 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +13 -0
- package/dist/types/ultramodern-release-envelope/framework-output.d.ts +1 -0
- package/docs/apis/app/{commands.mdx → commands.md} +35 -9
- package/docs/apis/app/hooks/api/{lambda.mdx → lambda.md} +2 -6
- package/docs/apis/app/hooks/config/{favicon.mdx → favicon.md} +1 -6
- package/docs/apis/app/hooks/config/{html.mdx → html.md} +1 -5
- package/docs/apis/app/hooks/config/{icon.mdx → icon.md} +1 -6
- package/docs/apis/app/hooks/config/{mock.mdx → mock.md} +1 -5
- package/docs/apis/app/hooks/config/{public.mdx → public.md} +0 -4
- package/docs/apis/app/hooks/config/{upload.mdx → upload.md} +3 -7
- package/docs/apis/app/hooks/{modern-config.mdx → modern-config.md} +1 -5
- package/docs/apis/app/hooks/server/{server.mdx → server.md} +1 -6
- package/docs/apis/app/hooks/{shared.mdx → shared.md} +0 -4
- package/docs/apis/app/hooks/src/{app.mdx → app.md} +2 -2
- package/docs/apis/app/hooks/src/{entry.mdx → entry.md} +1 -6
- package/docs/apis/app/hooks/src/{entry.server.mdx → entry.server.md} +0 -5
- package/docs/apis/app/hooks/src/{modern.runtime.mdx → modern.runtime.md} +1 -5
- package/docs/apis/app/hooks/src/{routes.mdx → routes.md} +3 -7
- package/docs/apis/app/hooks/src/{server.mdx → server.md} +1 -5
- package/docs/apis/app/runtime/bff/{use-backend-context.mdx → use-backend-context.md} +0 -3
- package/docs/apis/app/runtime/core/{create-root.mdx → create-root.md} +0 -3
- package/docs/apis/app/runtime/core/{render.mdx → render.md} +1 -4
- package/docs/apis/app/runtime/core/{runtime-context.mdx → runtime-context.md} +0 -4
- package/docs/apis/app/runtime/router/{router.mdx → router.md} +1 -6
- package/docs/apis/app/runtime/ssr/{no-ssr.mdx → no-ssr.md} +0 -3
- package/docs/apis/app/runtime/ssr/{renderStreaming.mdx → renderStreaming.md} +0 -4
- package/docs/apis/app/runtime/ssr/{renderString.mdx → renderString.md} +0 -4
- package/docs/apis/app/runtime/ssr/{requestHandler.mdx → requestHandler.md} +0 -4
- package/docs/apis/app/runtime/utility/{css-in-js.mdx → css-in-js.md} +0 -4
- package/docs/apis/app/runtime/utility/{head.mdx → head.md} +0 -3
- package/docs/apis/app/runtime/utility/{loadable.mdx → loadable.md} +0 -3
- package/docs/community/blog/2022-0708-updates.md +91 -0
- package/docs/community/blog/2022-0910-updates.md +76 -0
- package/docs/community/blog/overview.md +63 -0
- package/docs/community/blog/v2-release-note.md +238 -0
- package/docs/community/blog/v3-release-note.md +622 -0
- package/docs/community/contributing-guide.md +252 -0
- package/docs/community/releases.md +23 -0
- package/docs/community/showcase.md +24 -0
- package/docs/community/team.md +14 -0
- package/docs/configure/app/bff/{cross-project.mdx → cross-project.md} +4 -8
- package/docs/configure/app/bff/{effect.mdx → effect.md} +16 -22
- package/docs/configure/app/bff/{prefix.mdx → prefix.md} +3 -7
- package/docs/configure/app/bff/{runtime-framework.mdx → runtime-framework.md} +3 -7
- package/docs/configure/app/{builder-plugins.mdx → builder-plugins.md} +4 -8
- package/docs/configure/app/dev/{asset-prefix.mdx → asset-prefix.md} +4 -9
- package/docs/configure/app/dev/{before-start-url.mdx → before-start-url.md} +0 -4
- package/docs/configure/app/dev/{client.mdx → client.md} +3 -7
- package/docs/configure/app/dev/hmr.md +10 -0
- package/docs/configure/app/dev/{host.mdx → host.md} +0 -4
- package/docs/configure/app/dev/{https.mdx → https.md} +0 -4
- package/docs/configure/app/dev/{lazy-compilation.mdx → lazy-compilation.md} +2 -8
- package/docs/configure/app/dev/live-reload.md +10 -0
- package/docs/configure/app/dev/{mock-dir.mdx → mock-dir.md} +0 -4
- package/docs/configure/app/dev/progress-bar.md +19 -0
- package/docs/configure/app/dev/{server.mdx → server.md} +0 -4
- package/docs/configure/app/dev/{setup-middlewares.mdx → setup-middlewares.md} +3 -7
- package/docs/configure/app/dev/{start-url.mdx → start-url.md} +0 -5
- package/docs/configure/app/dev/{watch-files.mdx → watch-files.md} +3 -7
- package/docs/configure/app/dev/{write-to-disk.mdx → write-to-disk.md} +3 -7
- package/docs/configure/app/experiments/{source-build.mdx → source-build.md} +1 -3
- package/docs/configure/app/html/{app-icon.mdx → app-icon.md} +3 -7
- package/docs/configure/app/html/{crossorigin.mdx → crossorigin.md} +3 -7
- package/docs/configure/app/html/{favicon.mdx → favicon.md} +3 -7
- package/docs/configure/app/html/inject.md +10 -0
- package/docs/configure/app/html/{meta.mdx → meta.md} +3 -7
- package/docs/configure/app/html/{mount-id.mdx → mount-id.md} +3 -7
- package/docs/configure/app/html/output-structure.md +10 -0
- package/docs/configure/app/html/script-loading.md +10 -0
- package/docs/configure/app/html/{tags.mdx → tags.md} +3 -7
- package/docs/configure/app/html/{template-parameters.mdx → template-parameters.md} +3 -7
- package/docs/configure/app/html/template.md +10 -0
- package/docs/configure/app/html/title.md +18 -0
- package/docs/configure/app/output/asset-prefix.md +11 -0
- package/docs/configure/app/output/{assets-retry.mdx → assets-retry.md} +1 -5
- package/docs/configure/app/output/{charset.mdx → charset.md} +3 -7
- package/docs/configure/app/output/{clean-dist-path.mdx → clean-dist-path.md} +0 -4
- package/docs/configure/app/output/{convert-to-rem.mdx → convert-to-rem.md} +12 -16
- package/docs/configure/app/output/{copy.mdx → copy.md} +3 -7
- package/docs/configure/app/output/{css-modules.mdx → css-modules.md} +3 -7
- package/docs/configure/app/output/{data-uri-limit.mdx → data-uri-limit.md} +3 -7
- package/docs/configure/app/output/{disable-css-module-extension.mdx → disable-css-module-extension.md} +3 -7
- package/docs/configure/app/output/{disable-inline-runtime-chunk.mdx → disable-inline-runtime-chunk.md} +0 -4
- package/docs/configure/app/output/{disable-svgr.mdx → disable-svgr.md} +0 -4
- package/docs/configure/app/output/{disable-ts-checker.mdx → disable-ts-checker.md} +0 -4
- package/docs/configure/app/output/{dist-path.mdx → dist-path.md} +3 -11
- package/docs/configure/app/output/{enable-asset-manifest.mdx → enable-asset-manifest.md} +0 -4
- package/docs/configure/app/output/{enable-css-module-tsdeclaration.mdx → enable-css-module-tsdeclaration.md} +0 -4
- package/docs/configure/app/output/{enable-inline-route-manifests.mdx → enable-inline-route-manifests.md} +0 -4
- package/docs/configure/app/output/{externals.mdx → externals.md} +3 -7
- package/docs/configure/app/output/filename-hash.md +10 -0
- package/docs/configure/app/output/{filename.mdx → filename.md} +3 -7
- package/docs/configure/app/output/inject-styles.md +10 -0
- package/docs/configure/app/output/{inline-scripts.mdx → inline-scripts.md} +4 -8
- package/docs/configure/app/output/{inline-styles.mdx → inline-styles.md} +4 -8
- package/docs/configure/app/output/{legal-comments.mdx → legal-comments.md} +3 -7
- package/docs/configure/app/output/{minify.mdx → minify.md} +3 -7
- package/docs/configure/app/output/{override-browserslist.mdx → override-browserslist.md} +4 -8
- package/docs/configure/app/output/polyfill.md +12 -0
- package/docs/configure/app/output/{source-map.mdx → source-map.md} +3 -7
- package/docs/configure/app/output/{split-route-chunks.mdx → split-route-chunks.md} +0 -4
- package/docs/configure/app/output/{ssg.mdx → ssg.md} +3 -7
- package/docs/configure/app/output/{ssgByEntries.mdx → ssgByEntries.md} +1 -4
- package/docs/configure/app/output/{svg-default-export.mdx → svg-default-export.md} +0 -4
- package/docs/configure/app/output/{temp-dir.mdx → temp-dir.md} +0 -4
- package/docs/configure/app/performance/{build-cache.mdx → build-cache.md} +3 -7
- package/docs/configure/app/performance/{chunk-split.mdx → chunk-split.md} +3 -7
- package/docs/configure/app/performance/{dns-prefetch.mdx → dns-prefetch.md} +3 -7
- package/docs/configure/app/performance/preconnect.md +16 -0
- package/docs/configure/app/performance/{prefetch.mdx → prefetch.md} +3 -7
- package/docs/configure/app/performance/{preload.mdx → preload.md} +3 -7
- package/docs/configure/app/performance/{print-file-size.mdx → print-file-size.md} +3 -7
- package/docs/configure/app/performance/profile.md +10 -0
- package/docs/configure/app/performance/remove-console.md +10 -0
- package/docs/configure/app/performance/remove-moment-locale.md +10 -0
- package/docs/configure/app/performance/{rsdoctor.mdx → rsdoctor.md} +0 -4
- package/docs/configure/app/{plugins.mdx → plugins.md} +4 -4
- package/docs/configure/app/resolve/{alias-strategy.mdx → alias-strategy.md} +3 -7
- package/docs/configure/app/resolve/alias.md +9 -0
- package/docs/configure/app/resolve/{condition-names.mdx → condition-names.md} +3 -8
- package/docs/configure/app/resolve/{dedupe.mdx → dedupe.md} +3 -7
- package/docs/configure/app/resolve/{extensions.mdx → extensions.md} +3 -8
- package/docs/configure/app/runtime/{0-intro.mdx → 0-intro.md} +1 -4
- package/docs/configure/app/runtime/{plugins.mdx → plugins.md} +1 -1
- package/docs/configure/app/runtime/{router.mdx → router.md} +3 -7
- package/docs/configure/app/security/{check-syntax.mdx → check-syntax.md} +0 -4
- package/docs/configure/app/security/{nonce.mdx → nonce.md} +3 -7
- package/docs/configure/app/security/{sri.mdx → sri.md} +0 -4
- package/docs/configure/app/server/{base-url.mdx → base-url.md} +0 -4
- package/docs/configure/app/server/{port.mdx → port.md} +3 -7
- package/docs/configure/app/server/{public-routes.mdx → public-routes.md} +0 -4
- package/docs/configure/app/server/{routes.mdx → routes.md} +1 -5
- package/docs/configure/app/server/rsc.md +22 -0
- package/docs/configure/app/server/{ssr-by-entries.mdx → ssr-by-entries.md} +1 -5
- package/docs/configure/app/server/ssr.md +80 -0
- package/docs/configure/app/server/{tsconfig-path.mdx → tsconfig-path.md} +0 -4
- package/docs/configure/app/source/{alias-strategy.mdx → alias-strategy.md} +4 -8
- package/docs/configure/app/source/{alias.mdx → alias.md} +4 -8
- package/docs/configure/app/source/{config-dir.mdx → config-dir.md} +1 -5
- package/docs/configure/app/source/{decorators.mdx → decorators.md} +0 -4
- package/docs/configure/app/source/{define.mdx → define.md} +3 -7
- package/docs/configure/app/source/{disable-default-entries.mdx → disable-default-entries.md} +2 -6
- package/docs/{components/module-federation.mdx → configure/app/source/enable-async-entry.md} +47 -0
- package/docs/configure/app/source/{enable-async-pre-entry.mdx → enable-async-pre-entry.md} +0 -4
- package/docs/configure/app/source/{entries-dir.mdx → entries-dir.md} +0 -4
- package/docs/configure/app/source/{entries.mdx → entries.md} +1 -5
- package/docs/configure/app/source/{exclude.mdx → exclude.md} +4 -8
- package/docs/configure/app/source/{global-vars.mdx → global-vars.md} +0 -4
- package/docs/configure/app/source/{include.mdx → include.md} +4 -8
- package/docs/configure/app/source/{main-entry-name.mdx → main-entry-name.md} +0 -4
- package/docs/configure/app/source/{pre-entry.mdx → pre-entry.md} +3 -7
- package/docs/configure/app/source/{react-compiler.mdx → react-compiler.md} +0 -4
- package/docs/configure/app/source/{transform-import.mdx → transform-import.md} +3 -7
- package/docs/configure/app/{split-chunks.mdx → split-chunks.md} +3 -3
- package/docs/configure/app/tools/{autoprefixer.mdx → autoprefixer.md} +0 -4
- package/docs/configure/app/tools/{bundler-chain.mdx → bundler-chain.md} +0 -4
- package/docs/configure/app/tools/{css-extract.mdx → css-extract.md} +3 -7
- package/docs/configure/app/tools/{css-loader.mdx → css-loader.md} +3 -7
- package/docs/configure/app/tools/{dev-server.mdx → dev-server.md} +0 -4
- package/docs/configure/app/tools/{html-plugin.mdx → html-plugin.md} +3 -7
- package/docs/configure/app/tools/{less.mdx → less.md} +0 -4
- package/docs/configure/app/tools/{lightningcss-loader.mdx → lightningcss-loader.md} +3 -7
- package/docs/configure/app/tools/{minify-css.mdx → minify-css.md} +0 -4
- package/docs/configure/app/tools/{postcss.mdx → postcss.md} +3 -7
- package/docs/configure/app/tools/rspack.md +10 -0
- package/docs/configure/app/tools/{sass.mdx → sass.md} +0 -4
- package/docs/configure/app/tools/style-loader.md +10 -0
- package/docs/configure/app/tools/{swc.mdx → swc.md} +4 -8
- package/docs/configure/app/tools/{ts-checker.mdx → ts-checker.md} +20 -7
- package/docs/configure/app/{usage.mdx → usage.md} +1 -1
- package/docs/guides/advanced-features/bff/{cross-project.mdx → cross-project.md} +1 -2
- package/docs/guides/advanced-features/bff/{data-platform.mdx → data-platform.md} +0 -4
- package/docs/guides/advanced-features/bff/{extend-server.mdx → extend-server.md} +1 -1
- package/docs/guides/advanced-features/bff/frameworks.md +243 -0
- package/docs/guides/advanced-features/bff/{function.mdx → function.md} +60 -7
- package/docs/guides/advanced-features/bff/{operators.mdx → operators.md} +2 -77
- package/docs/{components/bff-upload.mdx → guides/advanced-features/bff/upload.md} +4 -0
- package/docs/guides/advanced-features/{bff.mdx → bff.md} +0 -4
- package/docs/guides/advanced-features/{build-performance.mdx → build-performance.md} +3 -7
- package/docs/guides/advanced-features/{compatibility.mdx → compatibility.md} +54 -15
- package/docs/guides/advanced-features/international/{advanced.mdx → advanced.md} +0 -4
- package/docs/guides/advanced-features/international/{api.mdx → api.md} +16 -20
- package/docs/guides/advanced-features/international/{best-practices.mdx → best-practices.md} +0 -4
- package/docs/guides/advanced-features/international/configuration.md +228 -0
- package/docs/guides/advanced-features/international/{locale-detection.mdx → locale-detection.md} +25 -29
- package/docs/guides/advanced-features/international/{quick-start.mdx → quick-start.md} +29 -13
- package/docs/guides/advanced-features/international/{resource-loading.mdx → resource-loading.md} +11 -15
- package/docs/guides/advanced-features/international/{routing.mdx → routing.md} +12 -16
- package/docs/guides/advanced-features/international.md +27 -0
- package/docs/guides/advanced-features/{low-level.mdx → low-level.md} +17 -21
- package/docs/guides/advanced-features/page-performance/{code-split.mdx → code-split.md} +2 -6
- package/docs/guides/advanced-features/page-performance/{inline-assets.mdx → inline-assets.md} +3 -7
- package/docs/guides/advanced-features/page-performance/{optimize-bundle.mdx → optimize-bundle.md} +4 -8
- package/docs/{components/internal-logger.mdx → guides/advanced-features/server-monitor/logger.md} +16 -0
- package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
- package/docs/guides/advanced-features/server-monitor/{monitors.mdx → monitors.md} +3 -3
- package/docs/guides/advanced-features/{source-build.mdx → source-build.md} +1 -5
- package/docs/guides/advanced-features/{web-server.mdx → web-server.md} +1 -9
- package/docs/guides/basic-features/{alias.mdx → alias.md} +3 -7
- package/docs/guides/basic-features/css/{css-in-js.mdx → css-in-js.md} +12 -9
- package/docs/guides/basic-features/css/{css-modules.mdx → css-modules.md} +3 -3
- package/docs/guides/basic-features/css/{css.mdx → css.md} +2 -6
- package/docs/guides/basic-features/data/{data-cache.mdx → data-cache.md} +1 -6
- package/docs/guides/basic-features/data/{data-fetch.mdx → data-fetch.md} +4 -8
- package/docs/guides/basic-features/data/{data-write.mdx → data-write.md} +6 -9
- package/docs/guides/basic-features/debug/{mock.mdx → mock.md} +1 -5
- package/docs/guides/basic-features/debug/{proxy.mdx → proxy.md} +1 -5
- package/docs/guides/basic-features/debug/{using-storybook.mdx → using-storybook.md} +20 -8
- package/docs/guides/basic-features/{deploy.mdx → deploy.md} +23 -13
- package/docs/guides/basic-features/{env-vars.mdx → env-vars.md} +8 -12
- package/docs/guides/basic-features/{html.mdx → html.md} +3 -7
- package/docs/guides/basic-features/{output-files.mdx → output-files.md} +6 -10
- package/docs/guides/basic-features/render/{before-render.mdx → before-render.md} +1 -1
- package/docs/guides/basic-features/render/overview.md +47 -0
- package/docs/guides/basic-features/render/{rsc.mdx → rsc.md} +16 -33
- package/docs/guides/basic-features/render/{ssg.mdx → ssg.md} +71 -10
- package/docs/guides/basic-features/render/{ssr-cache.mdx → ssr-cache.md} +5 -5
- package/docs/guides/basic-features/render/{ssr.mdx → ssr.md} +10 -12
- package/docs/guides/basic-features/render/{streaming-ssr.mdx → streaming-ssr.md} +5 -8
- package/docs/guides/basic-features/routes/{config-routes.mdx → config-routes.md} +10 -11
- package/docs/guides/basic-features/routes/{routes.mdx → routes.md} +8 -16
- package/docs/guides/basic-features/static-assets/{json-files.mdx → json-files.md} +0 -4
- package/docs/guides/basic-features/static-assets/{svg-assets.mdx → svg-assets.md} +3 -7
- package/docs/guides/basic-features/static-assets/{wasm-assets.mdx → wasm-assets.md} +1 -5
- package/docs/guides/basic-features/{static-assets.mdx → static-assets.md} +10 -14
- package/docs/guides/basic-features/testing/{playwright.mdx → playwright.md} +12 -3
- package/docs/guides/basic-features/testing/{rstest.mdx → rstest.md} +70 -11
- package/docs/guides/concept/{builder.mdx → builder.md} +3 -26
- package/docs/guides/concept/{entries.mdx → entries.md} +11 -17
- package/docs/guides/concept/{server.mdx → server.md} +3 -3
- package/docs/guides/get-started/{ai-coding-agents.mdx → ai-coding-agents.md} +4 -9
- package/docs/guides/get-started/glossary.md +63 -0
- package/docs/guides/get-started/{introduction.mdx → introduction.md} +1 -6
- package/docs/guides/get-started/quick-start.md +269 -0
- package/docs/guides/get-started/{tech-stack.mdx → tech-stack.md} +9 -15
- package/docs/guides/get-started/{ultramodern.mdx → ultramodern.md} +38 -31
- package/docs/guides/get-started/{upgrade.mdx → upgrade.md} +26 -22
- package/docs/guides/topic-detail/module-federation/{application.mdx → application.md} +3 -3
- package/docs/guides/topic-detail/module-federation/{deploy.mdx → deploy.md} +2 -2
- package/docs/guides/topic-detail/module-federation/{i18n.mdx → i18n.md} +14 -14
- package/docs/guides/topic-detail/module-federation/{introduce.mdx → introduce.md} +2 -3
- package/docs/guides/topic-detail/module-federation/{ssr.mdx → ssr.md} +12 -7
- package/docs/guides/topic-detail/module-federation/{usage.mdx → usage.md} +20 -3
- package/docs/guides/troubleshooting/{builder.mdx → builder.md} +10 -14
- package/docs/guides/troubleshooting/{cli.mdx → cli.md} +0 -4
- package/docs/guides/troubleshooting/{dependencies.mdx → dependencies.md} +7 -11
- package/docs/guides/troubleshooting/{hmr.mdx → hmr.md} +5 -9
- package/docs/guides/upgrade/{config.mdx → config.md} +8 -5
- package/docs/guides/upgrade/{entry.mdx → entry.md} +6 -6
- package/docs/guides/upgrade/{other.mdx → other.md} +8 -8
- package/docs/guides/upgrade/{overview.mdx → overview.md} +4 -4
- package/docs/guides/upgrade/{tailwindcss.mdx → tailwindcss.md} +0 -1
- package/docs/guides/upgrade/web-server.md +11 -11
- package/docs/index.md +33 -4
- package/docs/llms.txt +290 -0
- package/docs/plugin/cli-plugins/api.md +573 -0
- package/docs/plugin/cli-plugins/life-cycle.md +2 -0
- package/docs/plugin/introduction.md +152 -0
- package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
- package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
- package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
- package/docs/plugin/official/cli-plugins.md +4 -0
- package/docs/plugin/plugin-system.md +238 -0
- package/docs/plugin/runtime-plugins/api.md +194 -0
- package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
- package/docs/plugin/server-plugins/api.md +209 -0
- package/docs/plugin/server-plugins/life-cycle.md +13 -0
- package/docs/tutorials/examples/csr-auth.md +9 -0
- package/docs/tutorials/foundations/introduction.md +16 -0
- package/package.json +33 -15
- package/docs/_nav.json +0 -36
- package/docs/apis/_meta.json +0 -13
- package/docs/apis/app/hooks/_meta.json +0 -28
- package/docs/apis/app/hooks/config/_meta.json +0 -1
- package/docs/apis/app/runtime/_meta.json +0 -32
- package/docs/components/auto-upgrade.mdx +0 -0
- package/docs/components/build-output.mdx +0 -45
- package/docs/components/bundler.mdx +0 -3
- package/docs/components/convention-routing-motivation.mdx +0 -0
- package/docs/components/debug-app.mdx +0 -15
- package/docs/components/default-browserslist.mdx +0 -7
- package/docs/components/deploy-command.mdx +0 -14
- package/docs/components/deploy.mdx +0 -1
- package/docs/components/enable-bff-caution.mdx +0 -3
- package/docs/components/enable-bff.mdx +0 -56
- package/docs/components/enable-ssg.mdx +0 -49
- package/docs/components/entry-mode.mdx +0 -0
- package/docs/components/entry-scan-logic.mdx +0 -7
- package/docs/components/extend-bff-function.mdx +0 -3
- package/docs/components/hono.mdx +0 -120
- package/docs/components/init-app.mdx +0 -93
- package/docs/components/init-rspack-app.mdx +0 -5
- package/docs/components/internal-metrics.mdx +0 -20
- package/docs/components/international/custom-instance-code.mdx +0 -16
- package/docs/components/international/init-options-desc.mdx +0 -1
- package/docs/components/international/install-command.mdx +0 -10
- package/docs/components/international/instance-code.mdx +0 -16
- package/docs/components/international/introduce.mdx +0 -5
- package/docs/components/international/platform-support.mdx +0 -0
- package/docs/components/language-config.mdx +0 -9
- package/docs/components/micro-frontend.mdx +0 -6
- package/docs/components/micro-master-manifest-config.mdx +0 -15
- package/docs/components/micro-runtime-config.mdx +0 -17
- package/docs/components/new-entry-tooltip.mdx +0 -0
- package/docs/components/nodeVersion.mdx +0 -28
- package/docs/components/other-plugins.mdx +0 -0
- package/docs/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/components/output-distpath-warning.mdx +0 -0
- package/docs/components/output-polyfill-extend.mdx +0 -1
- package/docs/components/prerequisites.mdx +0 -18
- package/docs/components/release-note.mdx +0 -1
- package/docs/components/routes-practice.mdx +0 -0
- package/docs/components/rsbuild-config-tooltip.mdx +0 -5
- package/docs/components/rsbuild.mdx +0 -3
- package/docs/components/rsc-deploy-tip.mdx +0 -1
- package/docs/components/rspack.mdx +0 -3
- package/docs/components/rspackTip.mdx +0 -7
- package/docs/components/runtime-cli-config.mdx +0 -0
- package/docs/components/serve-command.mdx +0 -22
- package/docs/components/ssr-monitor.mdx +0 -3
- package/docs/components/stream-ssr-performance.mdx +0 -0
- package/docs/components/swc.mdx +0 -3
- package/docs/components/tech-stack-node-framework.mdx +0 -1
- package/docs/components/turtorials-example-list.mdx +0 -2
- package/docs/components/ua-polyfill.mdx +0 -44
- package/docs/components/upgrade-browserslist.mdx +0 -0
- package/docs/components/upgrade-config-deploy.mdx +0 -0
- package/docs/components/upgrade-faq.mdx +0 -0
- package/docs/configure/_meta.json +0 -78
- package/docs/configure/app/dev/hmr.mdx +0 -14
- package/docs/configure/app/dev/live-reload.mdx +0 -14
- package/docs/configure/app/dev/progress-bar.mdx +0 -23
- package/docs/configure/app/html/inject.mdx +0 -14
- package/docs/configure/app/html/output-structure.mdx +0 -14
- package/docs/configure/app/html/script-loading.mdx +0 -14
- package/docs/configure/app/html/template.mdx +0 -14
- package/docs/configure/app/html/title.mdx +0 -22
- package/docs/configure/app/output/asset-prefix.mdx +0 -18
- package/docs/configure/app/output/filename-hash.mdx +0 -14
- package/docs/configure/app/output/inject-styles.mdx +0 -14
- package/docs/configure/app/output/polyfill.mdx +0 -18
- package/docs/configure/app/performance/preconnect.mdx +0 -20
- package/docs/configure/app/performance/profile.mdx +0 -14
- package/docs/configure/app/performance/remove-console.mdx +0 -14
- package/docs/configure/app/performance/remove-moment-locale.mdx +0 -14
- package/docs/configure/app/resolve/alias.mdx +0 -13
- package/docs/configure/app/server/rsc.mdx +0 -30
- package/docs/configure/app/server/ssr.mdx +0 -85
- package/docs/configure/app/source/enable-async-entry.mdx +0 -54
- package/docs/configure/app/tools/rspack.mdx +0 -14
- package/docs/configure/app/tools/style-loader.mdx +0 -14
- package/docs/guides/_meta.json +0 -37
- package/docs/guides/advanced-features/_meta.json +0 -32
- package/docs/guides/advanced-features/bff/_meta.json +0 -10
- package/docs/guides/advanced-features/bff/frameworks.mdx +0 -131
- package/docs/guides/advanced-features/bff/upload.mdx +0 -7
- package/docs/guides/advanced-features/international/_meta.json +0 -10
- package/docs/guides/advanced-features/international/configuration.mdx +0 -222
- package/docs/guides/advanced-features/international.mdx +0 -29
- package/docs/guides/advanced-features/page-performance/_meta.json +0 -1
- package/docs/guides/advanced-features/server-monitor/_meta.json +0 -1
- package/docs/guides/advanced-features/server-monitor/logger.mdx +0 -19
- package/docs/guides/advanced-features/server-monitor/metrics.mdx +0 -41
- package/docs/guides/basic-features/_meta.json +0 -49
- package/docs/guides/basic-features/css/_meta.json +0 -1
- package/docs/guides/basic-features/data/_meta.json +0 -1
- package/docs/guides/basic-features/debug/_meta.json +0 -1
- package/docs/guides/basic-features/render/_meta.json +0 -1
- package/docs/guides/basic-features/render/overview.mdx +0 -51
- package/docs/guides/basic-features/routes/_meta.json +0 -1
- package/docs/guides/basic-features/static-assets/_meta.json +0 -1
- package/docs/guides/basic-features/testing/_meta.json +0 -1
- package/docs/guides/concept/_meta.json +0 -1
- package/docs/guides/get-started/_meta.json +0 -9
- package/docs/guides/get-started/glossary.mdx +0 -63
- package/docs/guides/get-started/quick-start.mdx +0 -92
- package/docs/guides/topic-detail/_meta.json +0 -8
- package/docs/guides/topic-detail/module-federation/_meta.json +0 -1
- package/docs/guides/troubleshooting/_meta.json +0 -1
- package/docs/guides/upgrade/_meta.json +0 -1
- package/scripts/copy-main-doc.mjs +0 -50
- /package/docs/guides/advanced-features/bff/{sdk.mdx → sdk.md} +0 -0
- /package/docs/guides/advanced-features/page-performance/{react-compiler.mdx → react-compiler.md} +0 -0
- /package/docs/guides/basic-features/css/{tailwindcss.mdx → tailwindcss.md} +0 -0
- /package/docs/guides/basic-features/debug/{rsdoctor.mdx → rsdoctor.md} +0 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
## Environment
|
|
4
|
+
|
|
5
|
+
### Node.js
|
|
6
|
+
|
|
7
|
+
Before getting started, you will need to install [Node.js](https://nodejs.org/), and ensure that your Node.js version is not lower than v20.19.5. **We recommend using the LTS version of Node.js 22.**
|
|
8
|
+
|
|
9
|
+
You can check the currently used Node.js version with the following command:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node -v
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
If you do not have Node.js installed in your current environment, or the installed version is lower than v20.19.5, you can use [nvm](https://github.com/nvm-sh/nvm) or [fnm](https://github.com/Schniz/fnm) to install the required version.
|
|
16
|
+
|
|
17
|
+
Here is an example of how to install the Node.js 22 LTS version via nvm:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Install the long-term support version of Node.js 22
|
|
21
|
+
nvm install 22 --lts
|
|
22
|
+
|
|
23
|
+
# Make the newly installed Node.js 22 as the default version
|
|
24
|
+
nvm alias default 22
|
|
25
|
+
|
|
26
|
+
# Switch to the newly installed Node.js 22
|
|
27
|
+
nvm use 22
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
:::tip nvm and fnm
|
|
31
|
+
Both nvm and fnm are Node.js version management tools. Relatively speaking, nvm is more mature and stable, while fnm is implemented using Rust, which provides better performance than nvm.
|
|
32
|
+
:::
|
|
33
|
+
|
|
34
|
+
Additionally, after installing nvm or fnm, when there is a `.nvmrc` file containing `lts/jod` in the repository's root directory, the system will automatically install or switch to the correct Node.js version upon entering the repository.
|
|
35
|
+
|
|
36
|
+
### pnpm
|
|
37
|
+
|
|
38
|
+
It is recommended to use [pnpm](https://pnpm.io/installation) to manage dependencies:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
mise use pnpm@11.21.0
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
:::note
|
|
45
|
+
Modern.js also supports dependency management with `yarn` and `npm`.
|
|
46
|
+
|
|
47
|
+
:::
|
|
48
|
+
|
|
49
|
+
## Installation
|
|
50
|
+
|
|
51
|
+
## Initialize
|
|
52
|
+
|
|
53
|
+
UltraModern.js provides the BleedingDev create package to create SuperApp
|
|
54
|
+
workspaces. It does not require global installation and can be run on-demand
|
|
55
|
+
using `pnpm dlx`.
|
|
56
|
+
|
|
57
|
+
The supported pnpm command is the scoped package specifier:
|
|
58
|
+
`pnpm dlx @bleedingdev/modern-js-create <target>`. Do not shorten it to
|
|
59
|
+
`pnpm dlx modern-js-create`; there is no unscoped package by that name.
|
|
60
|
+
|
|
61
|
+
You can initialize the empty directory you are already in:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
mkdir myapp && cd myapp
|
|
65
|
+
pnpm dlx @bleedingdev/modern-js-create .
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
You can also create a project directly in a new directory:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
To initialize with workspace protocol dependencies (for local monorepo testing of unreleased Modern.js packages):
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app --workspace
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The BleedingDev create package will directly create the application without providing an interactive Q & A interface:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
🚀 Welcome to UltraModern.js
|
|
84
|
+
|
|
85
|
+
📦 Creating project "my-super-app"...
|
|
86
|
+
|
|
87
|
+
✨ Project created successfully! 🎉
|
|
88
|
+
|
|
89
|
+
📋 Next, you can run the following commands:
|
|
90
|
+
|
|
91
|
+
📁 Enter the project directory:
|
|
92
|
+
|
|
93
|
+
cd my-super-app
|
|
94
|
+
|
|
95
|
+
🔧 Initialize Git repository:
|
|
96
|
+
|
|
97
|
+
git init
|
|
98
|
+
|
|
99
|
+
📥 Install project dependencies:
|
|
100
|
+
|
|
101
|
+
pnpm install
|
|
102
|
+
|
|
103
|
+
⚡ Start the development server:
|
|
104
|
+
|
|
105
|
+
pnpm start
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Now, the project structure is as follows:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
.
|
|
112
|
+
├── apps
|
|
113
|
+
│ └── shell-super-app
|
|
114
|
+
├── package.json
|
|
115
|
+
├── packages
|
|
116
|
+
│ ├── shared-contracts
|
|
117
|
+
│ ├── shared-design-tokens
|
|
118
|
+
│ └── shared-effect-client
|
|
119
|
+
├── scripts
|
|
120
|
+
├── topology
|
|
121
|
+
└── verticals
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The default workspace starts shell-only and installs the published BleedingDev
|
|
125
|
+
package aliases:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
From a generated SuperApp workspace, add a business MicroVertical in place:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
pnpm dlx @bleedingdev/modern-js-create transportation --vertical
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
The `--vertical` command mutates the current workspace: it adds the vertical
|
|
138
|
+
package and wires topology, ownership metadata, shell Module Federation,
|
|
139
|
+
development overlays, package dependencies, generated contracts, route-owned
|
|
140
|
+
i18n, CSS isolation, and the Effect BFF/client surface.
|
|
141
|
+
|
|
142
|
+
The lower-level `--ultramodern-package-*` flags are reserved for release
|
|
143
|
+
engineering and local package-source testing. BleedingDev packages are published
|
|
144
|
+
through GitHub Actions trusted publishing; do not publish them manually from a
|
|
145
|
+
developer machine.
|
|
146
|
+
|
|
147
|
+
## Development
|
|
148
|
+
|
|
149
|
+
Run `pnpm run dev` in the project to start the project:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
$ pnpm run dev
|
|
153
|
+
> modern dev
|
|
154
|
+
|
|
155
|
+
Modern.js Framework
|
|
156
|
+
|
|
157
|
+
ready Client compiled in 0.86 s
|
|
158
|
+
|
|
159
|
+
> Local: http://localhost:8080/
|
|
160
|
+
> Network: http://192.168.0.1:8080/
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Open `http://localhost:8080/` in your browser to see the page content.
|
|
164
|
+
|
|
165
|
+
## Configuration
|
|
166
|
+
|
|
167
|
+
In an UltraModern.js project created using `@bleedingdev/modern-js-create`, a `modern.config.ts` file is generated by default.
|
|
168
|
+
|
|
169
|
+
You can modify the configuration through this file to override the default behavior of Modern.js. For example, to enable SSR, add the following configuration:
|
|
170
|
+
|
|
171
|
+
```ts title="modern.config.ts"
|
|
172
|
+
import { appTools, defineConfig } from '@modern-js/app-tools';
|
|
173
|
+
|
|
174
|
+
export default defineConfig({
|
|
175
|
+
server: {
|
|
176
|
+
ssr: true,
|
|
177
|
+
},
|
|
178
|
+
plugins: [appTools()],
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
After running `pnpm run dev` again, you can find that the project has completed page rendering on the server in the browser's Network menu.
|
|
183
|
+
|
|
184
|
+
## Core npm Package
|
|
185
|
+
|
|
186
|
+
In a newly created project, the `@modern-js/app-tools` npm package is installed by default. It is the core package of the Modern.js framework and provides the following capabilities:
|
|
187
|
+
|
|
188
|
+
- It offers commonly used CLI commands such as `modern dev`, `modern build`, and more.
|
|
189
|
+
- It integrates Rsbuild, providing build capabilities.
|
|
190
|
+
- It integrates Modern.js Server, providing capabilities for development and production servers.
|
|
191
|
+
|
|
192
|
+
`@modern-js/app-tools` is implemented based on the plugin system of Modern.js. Essentially, it is a plugin. Therefore, you need to register `appTools` in the `plugins` field of the configuration file:
|
|
193
|
+
|
|
194
|
+
```ts title="modern.config.ts"
|
|
195
|
+
import { appTools, defineConfig } from '@modern-js/app-tools';
|
|
196
|
+
|
|
197
|
+
export default defineConfig({
|
|
198
|
+
plugins: [appTools()],
|
|
199
|
+
});
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Build the project
|
|
203
|
+
|
|
204
|
+
To build the production artifacts of the project, run `pnpm run build` in the project:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
$ pnpm run build
|
|
208
|
+
|
|
209
|
+
> modern build
|
|
210
|
+
|
|
211
|
+
Modern.js Framework
|
|
212
|
+
|
|
213
|
+
info Starting production build...
|
|
214
|
+
info Type checker is enabled. It may take some time.
|
|
215
|
+
ready Client compiled in 6.19 s
|
|
216
|
+
info Production file sizes:
|
|
217
|
+
|
|
218
|
+
File Size Gzipped
|
|
219
|
+
dist/routes-manifest.json 0.74 kB 0.28 kB
|
|
220
|
+
dist/static/css/async/page.d7915515.css 1.4 kB 0.69 kB
|
|
221
|
+
dist/static/js/main.5ae469e7.js 3.0 kB 1.3 kB
|
|
222
|
+
dist/html/index/index.html 6.0 kB 2.6 kB
|
|
223
|
+
dist/static/js/async/page.ddc8a4c1.js 19.2 kB 6.7 kB
|
|
224
|
+
dist/static/js/34.171fffdb.js 21.3 kB 7.1 kB
|
|
225
|
+
dist/static/js/lib-router.8995a55e.js 55.3 kB 18.1 kB
|
|
226
|
+
dist/static/js/lib-lodash.53ec3384.js 71.4 kB 24.8 kB
|
|
227
|
+
dist/static/js/lib-react.b5856db9.js 140.0 kB 45.2 kB
|
|
228
|
+
dist/static/js/lib-polyfill.86c452b3.js 213.3 kB 69.9 kB
|
|
229
|
+
|
|
230
|
+
Total size: 531.8 kB
|
|
231
|
+
Gzipped size: 176.7 kB
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
By default, the build artifacts are generated in `dist/`, with the following directory structure:
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
dist
|
|
238
|
+
├── html
|
|
239
|
+
│ └── index
|
|
240
|
+
├── modern.config.json
|
|
241
|
+
├── route.json
|
|
242
|
+
├── routes-manifest.json
|
|
243
|
+
└── static
|
|
244
|
+
├── css
|
|
245
|
+
└── js
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
> If you need to customize the directory of the build artifacts, please refer to [Output files](/guides/basic-features/output-files.md).
|
|
249
|
+
|
|
250
|
+
## Verify
|
|
251
|
+
|
|
252
|
+
Run `pnpm run serve` in the project to verify whether the build artifacts run normally locally:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
$ pnpm run serve
|
|
256
|
+
|
|
257
|
+
Modern.js Framework
|
|
258
|
+
|
|
259
|
+
info Starting production server...
|
|
260
|
+
|
|
261
|
+
> Local: http://localhost:8080/
|
|
262
|
+
> Network: http://192.168.0.1:8080/
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Open `http://localhost:8080/` in the browser, and the content should be consistent with that of `pnpm run dev`.
|
|
266
|
+
|
|
267
|
+
## Deployment
|
|
268
|
+
|
|
269
|
+
After local develop, you can refer to the [Deployment](/guides/basic-features/deploy.md) section to deploy the project to the server.
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
---
|
|
4
|
-
|
|
5
1
|
# Tech Stack
|
|
6
2
|
|
|
7
3
|
The Modern.js framework comes with built-in popular libraries and development tools from the community.
|
|
@@ -27,7 +23,7 @@ When creating an UltraModern project, TanStack Router is included by default:
|
|
|
27
23
|
pnpm dlx @bleedingdev/modern-js-create myapp
|
|
28
24
|
```
|
|
29
25
|
|
|
30
|
-
Modern.js supports conventional routing, self-controlled routing, or other routing schemes. Please refer to ["Routing"](/guides/basic-features/routes/routes) to make your choice.
|
|
26
|
+
Modern.js supports conventional routing, self-controlled routing, or other routing schemes. Please refer to ["Routing"](/guides/basic-features/routes/routes.md) to make your choice.
|
|
31
27
|
|
|
32
28
|
## Package Manager
|
|
33
29
|
|
|
@@ -53,9 +49,9 @@ During production builds, Modern.js uses [SWC](https://swc.rs/) to minify JS cod
|
|
|
53
49
|
|
|
54
50
|
Modern.js uses [PostCSS](https://postcss.org/) to transform CSS code and enables [autoprefixer](https://github.com/postcss/autoprefixer) by default to add CSS prefixes.
|
|
55
51
|
|
|
56
|
-
Modern.js supports enabling ["Lightning CSS"](/configure/app/tools/lightningcss-loader), which uses Lightning CSS to downgrade CSS syntax.
|
|
52
|
+
Modern.js supports enabling ["Lightning CSS"](/configure/app/tools/lightningcss-loader.md), which uses Lightning CSS to downgrade CSS syntax.
|
|
57
53
|
|
|
58
|
-
Modern.js supports enabling ["Tailwind CSS"](/guides/basic-features/css/tailwindcss) and is compatible with both Tailwind CSS v3 and v4.
|
|
54
|
+
Modern.js supports enabling ["Tailwind CSS"](/guides/basic-features/css/tailwindcss.md) and is compatible with both Tailwind CSS v3 and v4.
|
|
59
55
|
|
|
60
56
|
## CSS Preprocessors
|
|
61
57
|
|
|
@@ -68,11 +64,11 @@ Modern.js supports three CSS preprocessors: [Sass](https://sass-lang.com/), [Les
|
|
|
68
64
|
|
|
69
65
|
Modern.js provides out-of-the-box support for [CSS Modules](https://github.com/css-modules/css-modules), which is implemented internally based on [css-loader](https://www.npmjs.com/package/css-loader).
|
|
70
66
|
|
|
71
|
-
Please refer to ["Use CSS Modules"](/guides/basic-features/css/css-modules) for usage instructions.
|
|
67
|
+
Please refer to ["Use CSS Modules"](/guides/basic-features/css/css-modules.md) for usage instructions.
|
|
72
68
|
|
|
73
69
|
## CSS-in-JS
|
|
74
70
|
|
|
75
|
-
Modern.js supports the use of [styled-components](https://styled-components.com/). Please refer to ["Using CSS-in-JS"](/
|
|
71
|
+
Modern.js supports the use of [styled-components](https://styled-components.com/). Please refer to ["Using CSS-in-JS"](/guides/basic-features/css/css-in-js.md) for usage instructions.
|
|
76
72
|
|
|
77
73
|
If you need to use other CSS-in-JS solutions, you can integrate them into your project on your own.
|
|
78
74
|
|
|
@@ -82,16 +78,14 @@ Modern.js can be used with any React UI component library from the community, su
|
|
|
82
78
|
|
|
83
79
|
## Component Development
|
|
84
80
|
|
|
85
|
-
Modern.js supports the use of [Storybook](https://storybook.js.org/) for developing UI components. This feature is optional. Please refer to ["Using Storybook"](/guides/basic-features/debug/using-storybook) to enable it.
|
|
81
|
+
Modern.js supports the use of [Storybook](https://storybook.js.org/) for developing UI components. This feature is optional. Please refer to ["Using Storybook"](/guides/basic-features/debug/using-storybook.md) to enable it.
|
|
86
82
|
|
|
87
83
|
## Testing Framework
|
|
88
84
|
|
|
89
|
-
Modern.js recommends [Rstest](https://rstest.rs/) for unit tests and component tests. Rstest is built on Rspack for fast startup and execution, and it can reuse your Modern.js app configuration through [`@modern-js/adapter-rstest`](/guides/basic-features/testing/rstest).
|
|
85
|
+
Modern.js recommends [Rstest](https://rstest.rs/) for unit tests and component tests. Rstest is built on Rspack for fast startup and execution, and it can reuse your Modern.js app configuration through [`@modern-js/adapter-rstest`](/guides/basic-features/testing/rstest.md).
|
|
90
86
|
|
|
91
|
-
For end-to-end (E2E) tests, you can use [Playwright](/guides/basic-features/testing/playwright).
|
|
87
|
+
For end-to-end (E2E) tests, you can use [Playwright](/guides/basic-features/testing/playwright.md).
|
|
92
88
|
|
|
93
89
|
## Node.js Framework
|
|
94
90
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<TechStackNodeFramework />
|
|
91
|
+
Modern.js Server uses [Hono.js](https://hono.dev/) as the server runtime framework. For BFF, `bff.runtimeFramework` defaults to `effect`, while `hono` remains an explicit compatibility runtime. Effect and Hono BFF runtimes are strict modes (no implicit fallback). You can extend the Server based on the Hono.js ecosystem; refer to [Custom Web Server](/guides/advanced-features/web-server.md).
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: UltraModern.js 3.0
|
|
3
|
-
sidebar_position: 2
|
|
4
|
-
---
|
|
5
|
-
|
|
6
1
|
# UltraModern.js 3.0 vs Modern.js 3.0
|
|
7
2
|
|
|
8
3
|
This page compares **UltraModern.js 3.0** with the Modern.js 3.x line this fork tracks. The baseline is the current merged Modern.js `release-v3.x` baseline, not a frozen patch-version snapshot.
|
|
@@ -32,19 +27,19 @@ or migrated as UltraModern HTTP API, it must use the strict Effect HttpApi path.
|
|
|
32
27
|
|
|
33
28
|
## Intentional Differences (v3 line)
|
|
34
29
|
|
|
35
|
-
| Area
|
|
36
|
-
|
|
|
37
|
-
| Build diagnostics
|
|
38
|
-
| Output and static serving
|
|
39
|
-
| BFF runtime and contracts
|
|
40
|
-
| BFF runtime choices
|
|
41
|
-
| Telemetry standardization
|
|
42
|
-
| App-level MF SSR handshake
|
|
43
|
-
| MF vertical loading reliability | Retry/fallback patterns are often implemented per app
|
|
44
|
-
| Module onboarding governance
|
|
45
|
-
| Router runtime
|
|
46
|
-
| Scaffolding templates
|
|
47
|
-
| Workspace preset enforcement
|
|
30
|
+
| Area | Modern.js 3.0 baseline | UltraModern.js 3.0 |
|
|
31
|
+
| ------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| Build diagnostics | RsDoctor is generally opt-in | Adds a first-class `performance.rsdoctor` config surface (opt-in; the earlier default-on behavior and diagnostics contract artifact were reverted) |
|
|
33
|
+
| Output and static serving | Precompression behavior is app-defined | Enables `output.precompress` by default and serves `.br` / `.gz` variants via `Accept-Encoding` negotiation |
|
|
34
|
+
| BFF runtime and contracts | Standard BFF runtime/client generation | Adds `requestId`-aware producer isolation, fail-fast initialization checks, and operation/trace correlation headers |
|
|
35
|
+
| BFF runtime choices | Standard request-handler oriented BFF paths | Uses Effect `HttpApi` as the only generated HTTP API path (`api/index.ts`, `shared/api.ts`, `src/api/*`) and rejects raw handlers, manual parsing, manual `Response` construction, and Hono server imports in generated workspaces |
|
|
36
|
+
| Telemetry standardization | Observability wiring is often app-specific | Adds framework-level telemetry pipeline with OTLP/VictoriaMetrics exporters, redaction, batching, and backpressure controls |
|
|
37
|
+
| App-level MF SSR handshake | No dedicated super-app app-level stability contract focus | Adds `server.ssr.moduleFederationAppSSR` plus integration-tested env/config handshake |
|
|
38
|
+
| MF vertical loading reliability | Retry/fallback patterns are often implemented per app | Adds deterministic timeout/network/contract-error reliability matrix and distributed OTEL continuity tests |
|
|
39
|
+
| Module onboarding governance | No module-certification evidence profile in baseline | Adds module SDK contracts, boundary anti-pattern guards, and release/module certification gate workflows |
|
|
40
|
+
| Router runtime | Default runtime path centers on React Router | Adds first-class TanStack Router runtime/CLI path (React Router remains supported) |
|
|
41
|
+
| Scaffolding templates | Default create templates center on React Router starter path | Generates a SuperApp workspace by default with TanStack, Effect, Module Federation, i18n, Tailwind, Cloudflare, and ownership contracts |
|
|
42
|
+
| Workspace preset enforcement | No generated UltraModern preset gate workflow | Generated workspaces include `.github/workflows/ultramodern-workspace-gates.yml`, `pnpm check`, primitive local gates, and generated contract validation |
|
|
48
43
|
|
|
49
44
|
## What We Intentionally Do Not Change
|
|
50
45
|
|
|
@@ -143,13 +138,25 @@ migration work: move code to `shared/api.ts`, `api/index.ts`, and
|
|
|
143
138
|
and `src/effect`.
|
|
144
139
|
|
|
145
140
|
Generated strict Effect workspaces pin the compatible Effect cohort with pnpm
|
|
146
|
-
overrides: `effect@4.0.0-beta.
|
|
147
|
-
and `@effect/vitest@4.0.0-beta.
|
|
148
|
-
versions that disagree with those overrides.
|
|
149
|
-
|
|
150
|
-
`@effect/
|
|
151
|
-
|
|
152
|
-
|
|
141
|
+
overrides: `effect@4.0.0-beta.107`, `@effect/opentelemetry@4.0.0-beta.107`,
|
|
142
|
+
and `@effect/vitest@4.0.0-beta.107`. Do not add app-local direct Effect
|
|
143
|
+
versions that disagree with those overrides. The strict 24-hour release-age
|
|
144
|
+
gate applies to installed packages; this cohort carries no Effect age
|
|
145
|
+
exemption, and override-only `@effect/vitest` is not an installed approval
|
|
146
|
+
target. Independently, exact `trustPolicyExclude` entries for `effect`
|
|
147
|
+
and `@effect/opentelemetry` cover their trusted-publisher to provenance
|
|
148
|
+
metadata transition; they are not release-age approvals.
|
|
149
|
+
|
|
150
|
+
### Current generated dependency baseline
|
|
151
|
+
|
|
152
|
+
| Surface | Pin |
|
|
153
|
+
| ------------------------------ | --------------------------------------------------------------------------------------------------- |
|
|
154
|
+
| Effect runtime and test cohort | `effect`, `@effect/opentelemetry`, and `@effect/vitest`: `4.0.0-beta.107` |
|
|
155
|
+
| Effect compiler | `@effect/tsgo@0.36.2` |
|
|
156
|
+
| TanStack Router | `@tanstack/react-router@1.170.25`, `@tanstack/router-core@1.171.21`, `@tanstack/history@1.162.1` |
|
|
157
|
+
| Module Federation | `bridge-react`, `manifest`, `modern-js-v3`, and `rspack`: `2.8.2`; `@module-federation/node@2.7.49` |
|
|
158
|
+
| React Router | `react-router@7.18.2` |
|
|
159
|
+
| Node and package tooling | Node `26.7.0`, `@types/node@^26.2.0`, pnpm `11.21.0` |
|
|
153
160
|
|
|
154
161
|
Gradual migration means old, unmigrated Modern.js apps can keep their existing
|
|
155
162
|
runtime until they are converted. Once a surface is generated or migrated as
|
|
@@ -425,9 +432,9 @@ The generated `presetUltramodern(...)` starter enables strict platform contracts
|
|
|
425
432
|
|
|
426
433
|
## Related Docs
|
|
427
434
|
|
|
428
|
-
- [BFF Runtime Frameworks](/guides/advanced-features/bff/frameworks)
|
|
429
|
-
- [BFF Data Platform](/guides/advanced-features/bff/data-platform)
|
|
430
|
-
- [BFF Effect Runtime Config](/configure/app/bff/effect)
|
|
431
|
-
- [Module Federation SSR](/guides/topic-detail/module-federation/ssr)
|
|
432
|
-
- [performance.rsdoctor](/configure/app/performance/rsdoctor)
|
|
433
|
-
- [server.ssr](/configure/app/server/ssr)
|
|
435
|
+
- [BFF Runtime Frameworks](/guides/advanced-features/bff/frameworks.md)
|
|
436
|
+
- [BFF Data Platform](/guides/advanced-features/bff/data-platform.md)
|
|
437
|
+
- [BFF Effect Runtime Config](/configure/app/bff/effect.md)
|
|
438
|
+
- [Module Federation SSR](/guides/topic-detail/module-federation/ssr.md)
|
|
439
|
+
- [performance.rsdoctor](/configure/app/performance/rsdoctor.md)
|
|
440
|
+
- [server.ssr](/configure/app/server/ssr.md)
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
import { PackageManagerTabs } from '@theme';
|
|
6
|
-
import ReleaseNote from '@site-docs-en/components/release-note';
|
|
7
|
-
|
|
8
1
|
# Upgrading
|
|
9
2
|
|
|
10
|
-
import Upgrade from '@site-docs/components/auto-upgrade';
|
|
11
|
-
|
|
12
|
-
<Upgrade />
|
|
13
3
|
|
|
14
4
|
## Manual Upgrade
|
|
15
5
|
|
|
@@ -24,7 +14,7 @@ All Modern.js official packages are released with a **uniform version number**,
|
|
|
24
14
|
- Visit [npm](https://www.npmjs.com/package/@modern-js/app-tools) to check the latest version of `@modern-js/app-tools`
|
|
25
15
|
- Check [GitHub Releases](https://github.com/web-infra-dev/modern.js/releases)
|
|
26
16
|
|
|
27
|
-
|
|
17
|
+
According to the [Release Note](https://github.com/web-infra-dev/modern.js/releases) on the official website, developers can also manually upgrade the project to the desired version.
|
|
28
18
|
|
|
29
19
|
2. **Update package.json**
|
|
30
20
|
|
|
@@ -46,7 +36,26 @@ All Modern.js official packages are released with a **uniform version number**,
|
|
|
46
36
|
|
|
47
37
|
After updating `package.json`, reinstall dependencies:
|
|
48
38
|
|
|
49
|
-
|
|
39
|
+
|
|
40
|
+
```sh [npm]
|
|
41
|
+
npm install
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```sh [yarn]
|
|
45
|
+
yarn install
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```sh [pnpm]
|
|
49
|
+
pnpm install
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```sh [bun]
|
|
53
|
+
bun install
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```sh [deno]
|
|
57
|
+
deno install
|
|
58
|
+
```
|
|
50
59
|
|
|
51
60
|
:::tip
|
|
52
61
|
When upgrading, you need to upgrade all packages provided by Modern.js uniformly, rather than upgrading individual dependencies. Ensure that all `@modern-js/**` packages have the same version number.
|
|
@@ -72,16 +81,11 @@ When a nested dependency of the project has a problem and Modern.js cannot be up
|
|
|
72
81
|
|
|
73
82
|
### pnpm
|
|
74
83
|
|
|
75
|
-
For projects using pnpm, add the following configuration to
|
|
84
|
+
For projects using pnpm, add the following configuration to `pnpm-workspace.yaml` in the **root directory** of the project, and then run `pnpm install` again:
|
|
76
85
|
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
"overrides": {
|
|
81
|
-
"package-name": "^1.0.0"
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
86
|
+
```yaml title="pnpm-workspace.yaml"
|
|
87
|
+
overrides:
|
|
88
|
+
package-name: ^1.0.0
|
|
85
89
|
```
|
|
86
90
|
|
|
87
91
|
### Yarn
|
|
@@ -109,6 +113,6 @@ For projects using Npm, add the following configuration to the `package.json` in
|
|
|
109
113
|
```
|
|
110
114
|
|
|
111
115
|
:::info
|
|
112
|
-
For Monorepo repositories,
|
|
116
|
+
For Monorepo repositories, lock dependency versions in the package-manager configuration at the project root. The override affects every package in the Monorepo.
|
|
113
117
|
|
|
114
118
|
:::
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Modern.js provides runtime APIs to quickly export application-level Module Federation modules from your application.
|
|
4
4
|
|
|
5
|
-
We use the application created in [Using Module Federation](/guides/topic-detail/module-federation/usage) as an example to further explain how to import application-level modules.
|
|
5
|
+
We use the application created in [Using Module Federation](/guides/topic-detail/module-federation/usage.md) as an example to further explain how to import application-level modules.
|
|
6
6
|
|
|
7
7
|
## Exporting Modules from Producer
|
|
8
8
|
|
|
@@ -62,7 +62,7 @@ export default createModuleFederationConfig({
|
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
:::info
|
|
65
|
-
[`createBridgeComponent`](https://module-federation.io/guide/bridge/overview#core-apis) is used to export application-level modules. Modern.js related APIs can be found at [createRoot](/apis/app/runtime/core/create-root) and [render](/apis/app/runtime/core/render).
|
|
65
|
+
[`createBridgeComponent`](https://module-federation.io/guide/bridge/overview#core-apis) is used to export application-level modules. Modern.js related APIs can be found at [createRoot](/apis/app/runtime/core/create-root.md) and [render](/apis/app/runtime/core/render.md).
|
|
66
66
|
:::
|
|
67
67
|
|
|
68
68
|
## Using Modules in Consumer
|
|
@@ -72,7 +72,7 @@ We then modify the consumer configuration by removing the previously created `sr
|
|
|
72
72
|
We want all routes that access `/remote` to enter the aforementioned application-level module, so we add `src/routes/remote/$.tsx` instead.
|
|
73
73
|
|
|
74
74
|
:::note
|
|
75
|
-
If you are not familiar with the capabilities of `$.tsx`, please read [Wildcard Routes](/guides/basic-features/routes/routes#wildcard-routes).
|
|
75
|
+
If you are not familiar with the capabilities of `$.tsx`, please read [Wildcard Routes](/guides/basic-features/routes/routes.md#wildcard-routes).
|
|
76
76
|
:::
|
|
77
77
|
|
|
78
78
|
```tsx title="src/routes/remote/$.tsx"
|
|
@@ -5,7 +5,7 @@ In general, when deploying a Module Federation application, there are two key po
|
|
|
5
5
|
1. Ensure that the remote module addresses in the consumer's configuration file are correct, and that the consumer can correctly access the producer's `manifest` file.
|
|
6
6
|
2. Ensure that all resources in the producer's `manifest` file can be accessed correctly.
|
|
7
7
|
|
|
8
|
-
We recommend using Modern.js's [Node Server](/guides/basic-features/deploy.
|
|
8
|
+
We recommend using Modern.js's [Node Server](/guides/basic-features/deploy.md#using-modernjs-built-in-nodejs-server) to deploy Module Federation applications for an out-of-the-box experience.
|
|
9
9
|
|
|
10
10
|
## Consumer
|
|
11
11
|
|
|
@@ -36,7 +36,7 @@ In the above code, the address of the remote module is `/static/mf-manifest.json
|
|
|
36
36
|
|
|
37
37
|
## Producer
|
|
38
38
|
|
|
39
|
-
For the producer of Module Federation, developers need to correctly configure the [`output.assetPrefix`](/configure/app/output/asset-prefix) configuration, which affects:
|
|
39
|
+
For the producer of Module Federation, developers need to correctly configure the [`output.assetPrefix`](/configure/app/output/asset-prefix.md) configuration, which affects:
|
|
40
40
|
|
|
41
41
|
1. The `publicPath` defined in `mf-manifest.json`, which determines the access path of other resources of the remote module.
|
|
42
42
|
2. The access path of the `mf-manifest.json` file when hosted directly by the Modern.js server.
|
|
@@ -6,8 +6,8 @@ Modern.js provides the **@modern-js/plugin-i18n** plugin to support internationa
|
|
|
6
6
|
|
|
7
7
|
Before you begin, make sure you have:
|
|
8
8
|
|
|
9
|
-
- Understood [Module Federation Basic Usage](/guides/topic-detail/module-federation/usage)
|
|
10
|
-
- Understood [Basic Usage of the Internationalization Plugin](/guides/advanced-features/international/quick-start)
|
|
9
|
+
- Understood [Module Federation Basic Usage](/guides/topic-detail/module-federation/usage.md)
|
|
10
|
+
- Understood [Basic Usage of the Internationalization Plugin](/guides/advanced-features/international/quick-start.md)
|
|
11
11
|
- Created producer and consumer applications
|
|
12
12
|
|
|
13
13
|
## Solution Overview
|
|
@@ -25,7 +25,7 @@ For component scenarios, we recommend using a shared I18n instance, because comp
|
|
|
25
25
|
|
|
26
26
|
:::info
|
|
27
27
|
|
|
28
|
-
For detailed usage of the i18n plugin, please refer to the [Internationalization Documentation](/guides/advanced-features/international/quick-start).
|
|
28
|
+
For detailed usage of the i18n plugin, please refer to the [Internationalization Documentation](/guides/advanced-features/international/quick-start.md).
|
|
29
29
|
|
|
30
30
|
:::
|
|
31
31
|
|
|
@@ -63,7 +63,7 @@ export default defineConfig({
|
|
|
63
63
|
|
|
64
64
|
:::info
|
|
65
65
|
|
|
66
|
-
For detailed configuration options of the i18n plugin, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration).
|
|
66
|
+
For detailed configuration options of the i18n plugin, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration.md).
|
|
67
67
|
|
|
68
68
|
:::
|
|
69
69
|
|
|
@@ -313,7 +313,7 @@ export default function Layout() {
|
|
|
313
313
|
|
|
314
314
|
:::info
|
|
315
315
|
|
|
316
|
-
For detailed API documentation of the `useModernI18n` Hook, please refer to the [API Reference Documentation](/guides/advanced-features/international/api).
|
|
316
|
+
For detailed API documentation of the `useModernI18n` Hook, please refer to the [API Reference Documentation](/guides/advanced-features/international/api.md).
|
|
317
317
|
|
|
318
318
|
:::
|
|
319
319
|
|
|
@@ -330,7 +330,7 @@ When using an independent I18n instance:
|
|
|
330
330
|
|
|
331
331
|
## Scenario 3: Producer - Application
|
|
332
332
|
|
|
333
|
-
When the producer exports application-level modules, you need to use the Bridge API to export the application. For detailed information about application-level modules, please refer to [Application-Level Modules](/guides/topic-detail/module-federation/application).
|
|
333
|
+
When the producer exports application-level modules, you need to use the Bridge API to export the application. For detailed information about application-level modules, please refer to [Application-Level Modules](/guides/topic-detail/module-federation/application.md).
|
|
334
334
|
|
|
335
335
|
:::warning
|
|
336
336
|
|
|
@@ -340,7 +340,7 @@ Producers do not support enabling path redirection (`localePathRedirect`). Route
|
|
|
340
340
|
|
|
341
341
|
:::info
|
|
342
342
|
|
|
343
|
-
For detailed information about routing integration, please refer to the [Routing Integration Documentation](/guides/advanced-features/international/routing).
|
|
343
|
+
For detailed information about routing integration, please refer to the [Routing Integration Documentation](/guides/advanced-features/international/routing.md).
|
|
344
344
|
|
|
345
345
|
:::
|
|
346
346
|
|
|
@@ -455,7 +455,7 @@ This is useful when you need different i18n instances for different entry points
|
|
|
455
455
|
|
|
456
456
|
:::info
|
|
457
457
|
|
|
458
|
-
For detailed information about the `i18nInstance` configuration, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration#i18ninstance-配置).
|
|
458
|
+
For detailed information about the `i18nInstance` configuration, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration.md#i18ninstance-配置).
|
|
459
459
|
|
|
460
460
|
:::
|
|
461
461
|
|
|
@@ -642,7 +642,7 @@ export default defineRuntimeConfig({
|
|
|
642
642
|
|
|
643
643
|
:::info
|
|
644
644
|
|
|
645
|
-
For detailed information about the `i18nInstance` configuration, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration#i18ninstance-配置).
|
|
645
|
+
For detailed information about the `i18nInstance` configuration, please refer to the [Configuration Documentation](/guides/advanced-features/international/configuration.md#i18ninstance-配置).
|
|
646
646
|
|
|
647
647
|
:::
|
|
648
648
|
|
|
@@ -663,8 +663,8 @@ Key points for integrating i18n with Module Federation:
|
|
|
663
663
|
|
|
664
664
|
## Related Documentation
|
|
665
665
|
|
|
666
|
-
- [Module Federation Basic Usage](/guides/topic-detail/module-federation/usage)
|
|
667
|
-
- [Application-Level Modules](/guides/topic-detail/module-federation/application)
|
|
668
|
-
- [Internationalization Quick Start](/guides/advanced-features/international/quick-start)
|
|
669
|
-
- [Internationalization Configuration](/guides/advanced-features/international/configuration)
|
|
670
|
-
- [Internationalization Routing Integration](/guides/advanced-features/international/routing)
|
|
666
|
+
- [Module Federation Basic Usage](/guides/topic-detail/module-federation/usage.md)
|
|
667
|
+
- [Application-Level Modules](/guides/topic-detail/module-federation/application.md)
|
|
668
|
+
- [Internationalization Quick Start](/guides/advanced-features/international/quick-start.md)
|
|
669
|
+
- [Internationalization Configuration](/guides/advanced-features/international/configuration.md)
|
|
670
|
+
- [Internationalization Routing Integration](/guides/advanced-features/international/routing.md)
|
|
@@ -24,7 +24,7 @@ The plugin injects the Module Federation plugin into Modern.js applications and
|
|
|
24
24
|
|
|
25
25
|
Moreover, the plugin also supports the use of Module Federation in Modern.js SSR applications, providing a better performance experience.
|
|
26
26
|
|
|
27
|
-
For more details, refer to [Using Module Federation](/guides/topic-detail/module-federation/usage) and [Module Federation Server-Side Rendering](/guides/topic-detail/module-federation/ssr).
|
|
27
|
+
For more details, refer to [Using Module Federation](/guides/topic-detail/module-federation/usage.md) and [Module Federation Server-Side Rendering](/guides/topic-detail/module-federation/ssr.md).
|
|
28
28
|
|
|
29
29
|
## Application-Level Modules
|
|
30
30
|
|
|
@@ -32,5 +32,4 @@ For more details, refer to [Using Module Federation](/guides/topic-detail/module
|
|
|
32
32
|
|
|
33
33
|
Module Federation 2.0 offers the [Bridge](https://module-federation.io/practice/bridge/overview.html) capability to load application-level modules.
|
|
34
34
|
|
|
35
|
-
Modern.js, based on Bridge and its internal implementation, provides APIs to easily export application-level modules. For more details, refer to [Application-Level Modules](/guides/topic-detail/module-federation/application).
|
|
36
|
-
|
|
35
|
+
Modern.js, based on Bridge and its internal implementation, provides APIs to easily export application-level modules. For more details, refer to [Application-Level Modules](/guides/topic-detail/module-federation/application.md).
|