@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.100 → 3.5.0-ultramodern.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/modern-bundle-docs.js +7 -0
- package/dist/cjs/bundleDocs.js +114 -0
- package/dist/esm/bundleDocs.mjs +62 -0
- package/dist/esm-node/bundleDocs.mjs +63 -0
- package/dist/types/bundleDocs.d.ts +20 -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} +3 -7
- 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.mdx → rsc.md} +2 -6
- 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} +12 -20
- 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} +19 -24
- package/docs/guides/get-started/{upgrade.mdx → upgrade.md} +21 -12
- 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 +32 -14
- 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/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,63 @@
|
|
|
1
|
+
# Glossary
|
|
2
|
+
|
|
3
|
+
## BFF
|
|
4
|
+
|
|
5
|
+
BFF is short for "Backend For Frontend". It is an architecture pattern that involves creating a backend service for frontend applications.
|
|
6
|
+
|
|
7
|
+
The BFF service acts as an intermediary between the frontend application and the server API, and can provide customized APIs for the frontend to use. This allows frontend developers to have more control over the data and functionality they need, without relying on the backend service to provide the corresponding capabilities.
|
|
8
|
+
|
|
9
|
+
## Bundler
|
|
10
|
+
|
|
11
|
+
Refers to module bundlers such as [Rspack](https://rspack.rs/).
|
|
12
|
+
|
|
13
|
+
The main goal of bundlers is to bundle JavaScript, CSS and other files together, and the bundled files can be used in the browser, Node.js or other environments. When bundler processes the Web application, it builds a dependency graph and then combines every module into one or more bundles.
|
|
14
|
+
|
|
15
|
+
## CSR
|
|
16
|
+
|
|
17
|
+
CSR stands for "Client-Side Rendering". It means that the page is rendered in the browser using JavaScript, and logic such as data fetching, templates, and routing is completed on the client side rather than the server.
|
|
18
|
+
|
|
19
|
+
In CSR, the server sends an empty HTML shell and some JavaScript scripts to the browser, and the browser fetching data from the server's API and renders dynamic content to the page.
|
|
20
|
+
|
|
21
|
+
## Module Federation
|
|
22
|
+
|
|
23
|
+
Module Federation (MF) is a technology solution that allows multiple JavaScript applications to share code and resources. Similar to microservices architecture on the server side, it allows you to split large applications into multiple independent smaller applications that can be developed, tested, and deployed independently, while dynamically loading modules from other applications at runtime.
|
|
24
|
+
|
|
25
|
+
Module Federation solves the problem of code duplication across multiple frontend applications. In the traditional approach, if multiple applications need to use the same components or utility functions, you would need to duplicate this code in each application, leading to code duplication, high maintenance costs, and larger application sizes. With Module Federation, you can place common code in one application and have other applications load it dynamically as needed, enabling code sharing and reducing duplication.
|
|
26
|
+
|
|
27
|
+
Module Federation 2.0 supports [Rspack](https://rspack.rs/) build tools, and provides enhanced features such as dynamic type hints, Manifest, Federation Runtime, runtime plugin system, and Chrome Devtools support for better development experience and debugging capabilities. You can visit the [Module Federation official documentation](https://module-federation.io/) to learn more.
|
|
28
|
+
|
|
29
|
+
Modern.js provides an example project for Module Federation. Please refer to [module-federation-examples - modernjs](https://github.com/module-federation/module-federation-examples/tree/db5bdbeee56f779999a2c591fc553eb94eb20b36/modernjs).
|
|
30
|
+
|
|
31
|
+
## Rsbuild
|
|
32
|
+
|
|
33
|
+
[Rsbuild](https://v2.rsbuild.rs/) is an Rspack-based build tool for the web. The main goal of Rsbuild is to provide out-of-the-box build capabilities for Rspack users, allowing developers to start a web project with zero configuration.
|
|
34
|
+
|
|
35
|
+
Rsbuild integrates high-performance Rust-based tools from the community, including Rspack and SWC, to provide first-class build speed and development experience.
|
|
36
|
+
|
|
37
|
+
## Rspack
|
|
38
|
+
|
|
39
|
+
[Rspack](https://rspack.rs/) is a high performance JavaScript bundler written in Rust. It offers strong compatibility with the webpack ecosystem, allowing for seamless replacement of webpack, and provides lightning fast build speeds.
|
|
40
|
+
|
|
41
|
+
Compared to webpack, Rspack has significantly improved build performance, thanks not only to the language advantages brought by Rust, but also to its parallel architecture and incremental compilation features. Benchmarking has shown that Rspack can provide 5-10 times better compilation performance.
|
|
42
|
+
|
|
43
|
+
## SSR
|
|
44
|
+
|
|
45
|
+
SSR stands for "Server-Side Rendering". It means that the HTML of the web page is generated by the server and sent to the client, rather than sending only an empty HTML shell and relying on JavaScript to generate the page content.
|
|
46
|
+
|
|
47
|
+
In traditional client-side rendering, the server sends an empty HTML shell and some JavaScript scripts to the client, and then fetching data from the server's API and fills the page with dynamic content. This leads to slow initial page loading times and is not conducive to user experience and SEO.
|
|
48
|
+
|
|
49
|
+
With SSR, the server generates HTML that already contains dynamic content and sends it to the client. This makes the initial page loading faster and more SEO-friendly, as search engines can crawl the rendered page.
|
|
50
|
+
|
|
51
|
+
## SSG
|
|
52
|
+
|
|
53
|
+
SSG stands for "Static Site Generation". It means that web pages are pre-rendered as static HTML and served directly to the client, without the need for the server to generate HTML in real-time.
|
|
54
|
+
|
|
55
|
+
In traditional SSR, the server generates HTML in real-time every time a user requests a page. With SSG, HTML can be generated in advance during the build process and hosted on a CDN or other static assets service.
|
|
56
|
+
|
|
57
|
+
Compared to traditional SSR, SSG can provide faster loading speeds and less server-side overhead, as there is no need to maintain a server to generate HTML in real-time. However, SSG is not suitable for websites that require dynamic content, as the HTML is generated during the build process and does not support real-time updates.
|
|
58
|
+
|
|
59
|
+
## SWC
|
|
60
|
+
|
|
61
|
+
[SWC](https://SWC.rs/) (Speedy Web Compiler) is a transformer and minimizer for JavaScript and TypeScript based on `Rust`. SWC can provide the same abilities with Babel, and it's more than 10x faster than Babel.
|
|
62
|
+
|
|
63
|
+
Modern.js has a out-of-box plugin for SWC, power your Web application with Polyfill and minification, we also port some common used Babel plugins to SWC.
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Introduction
|
|
3
|
-
sidebar_position: 1
|
|
4
|
-
---
|
|
5
|
-
|
|
6
1
|
# Introduction to Modern.js
|
|
7
2
|
|
|
8
3
|
**Modern.js is a progressive web framework based on React**. At ByteDance, we use Modern.js to build upper-level frameworks that have supported the development of thousands of web applications.
|
|
@@ -42,4 +37,4 @@ Pelease refer to [Modern.js vs Remix](https://github.com/web-infra-dev/modern.js
|
|
|
42
37
|
|
|
43
38
|
## Next Step
|
|
44
39
|
|
|
45
|
-
If you want to understand the compatibility-first differences between Modern.js v3 and UltraModern.js v3, read [UltraModern.js](/guides/get-started/ultramodern).
|
|
40
|
+
If you want to understand the compatibility-first differences between Modern.js v3 and UltraModern.js v3, read [UltraModern.js](/guides/get-started/ultramodern.md).
|
|
@@ -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.17.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
|
|
|
@@ -425,9 +420,9 @@ The generated `presetUltramodern(...)` starter enables strict platform contracts
|
|
|
425
420
|
|
|
426
421
|
## Related Docs
|
|
427
422
|
|
|
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)
|
|
423
|
+
- [BFF Runtime Frameworks](/guides/advanced-features/bff/frameworks.md)
|
|
424
|
+
- [BFF Data Platform](/guides/advanced-features/bff/data-platform.md)
|
|
425
|
+
- [BFF Effect Runtime Config](/configure/app/bff/effect.md)
|
|
426
|
+
- [Module Federation SSR](/guides/topic-detail/module-federation/ssr.md)
|
|
427
|
+
- [performance.rsdoctor](/configure/app/performance/rsdoctor.md)
|
|
428
|
+
- [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.
|
|
@@ -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.
|