@modern-js/main-doc 2.69.4 → 3.0.0-alpha.0
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/docs/en/{_meta.json → _nav.json} +5 -1
- package/docs/en/apis/app/commands.mdx +2 -3
- package/docs/en/apis/app/hooks/src/entry.mdx +1 -5
- package/docs/en/apis/app/hooks/src/entry.server.mdx +4 -5
- package/docs/en/apis/app/hooks/src/routes.mdx +2 -2
- package/docs/en/apis/app/runtime/_meta.json +0 -18
- package/docs/en/apis/app/runtime/bff/use-hono-context.mdx +2 -2
- package/docs/en/apis/app/runtime/router/router.mdx +1 -1
- package/docs/en/apis/app/runtime/utility/css-in-js.mdx +3 -2
- package/docs/en/community/blog/v2-release-note.mdx +0 -2
- package/docs/en/community/contributing-guide.mdx +10 -12
- package/docs/en/components/bff-upload.mdx +16 -12
- package/docs/en/components/build-output.mdx +45 -0
- package/docs/en/components/debug-app.mdx +1 -1
- package/docs/en/components/enable-bff-caution.mdx +2 -2
- package/docs/en/components/enable-bff.mdx +38 -8
- package/docs/en/components/enable-ssg.mdx +48 -0
- package/docs/en/components/entry-scan-logic.mdx +7 -0
- package/docs/en/components/init-app.mdx +40 -17
- package/docs/en/components/international/install-command.mdx +9 -0
- package/docs/en/components/international/introduce.mdx +2 -0
- package/docs/en/components/module-federation.mdx +4 -4
- package/docs/en/components/new-entry-tooltip.mdx +0 -0
- package/docs/en/components/nodeVersion.mdx +2 -6
- package/docs/en/components/prerequisites.mdx +1 -1
- package/docs/en/components/ua-polyfill.mdx +16 -12
- package/docs/en/components/upgrade-browserslist.mdx +0 -0
- package/docs/en/configure/_meta.json +7 -8
- package/docs/en/configure/app/bff/cross-project.mdx +24 -0
- package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
- package/docs/en/configure/app/dev/server.mdx +103 -0
- package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
- package/docs/en/configure/app/html/app-icon.mdx +1 -23
- package/docs/en/configure/app/output/inline-scripts.mdx +1 -1
- package/docs/en/configure/app/output/override-browserslist.mdx +6 -4
- package/docs/en/configure/app/output/source-map.mdx +6 -3
- package/docs/en/configure/app/output/ssg.mdx +12 -43
- package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
- package/docs/en/configure/app/performance/build-cache.mdx +0 -4
- package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
- package/docs/en/configure/app/resolve/alias.mdx +13 -0
- package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
- package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
- package/docs/en/configure/app/resolve/extensions.mdx +18 -0
- package/docs/en/configure/app/runtime/0-intro.mdx +2 -51
- package/docs/en/configure/app/security/check-syntax.mdx +1 -1
- package/docs/en/configure/app/server/port.mdx +1 -21
- package/docs/en/configure/app/server/rsc.mdx +30 -0
- package/docs/en/configure/app/server/ssr.mdx +20 -9
- package/docs/en/configure/app/source/decorators.mdx +4 -2
- package/docs/en/configure/app/source/entries.mdx +0 -2
- package/docs/en/configure/app/source/main-entry-name.mdx +4 -4
- package/docs/en/configure/app/source/transform-import.mdx +1 -59
- package/docs/en/configure/app/tools/bundler-chain.mdx +5 -5
- package/docs/en/configure/app/tools/css-extract.mdx +1 -1
- package/docs/en/configure/app/tools/dev-server.mdx +14 -248
- package/docs/en/configure/app/tools/html-plugin.mdx +3 -3
- package/docs/en/configure/app/tools/lightningcss-loader.mdx +0 -1
- package/docs/en/configure/app/tools/swc.mdx +1 -43
- package/docs/en/configure/app/usage.mdx +7 -17
- package/docs/en/guides/_meta.json +1 -2
- package/docs/en/guides/advanced-features/_meta.json +6 -0
- package/docs/en/guides/advanced-features/bff/cross-project.mdx +1 -7
- package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +1 -1
- package/docs/en/guides/advanced-features/bff/function.mdx +2 -6
- package/docs/en/guides/advanced-features/bff/sdk.mdx +3 -3
- package/docs/en/guides/advanced-features/build-performance.mdx +23 -26
- package/docs/en/guides/advanced-features/compatibility.mdx +53 -9
- package/docs/en/guides/advanced-features/international/_meta.json +11 -0
- package/docs/en/guides/advanced-features/international/advanced.mdx +193 -0
- package/docs/en/guides/advanced-features/international/api.mdx +400 -0
- package/docs/en/guides/advanced-features/international/basic.mdx +417 -0
- package/docs/en/guides/advanced-features/international/best-practices.mdx +135 -0
- package/docs/en/guides/advanced-features/international/configuration.mdx +437 -0
- package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
- package/docs/en/guides/advanced-features/international/quick-start.mdx +154 -0
- package/docs/en/guides/advanced-features/international/resource-loading.mdx +417 -0
- package/docs/en/guides/advanced-features/international/routing.mdx +212 -0
- package/docs/en/guides/advanced-features/international.mdx +37 -0
- package/docs/en/guides/advanced-features/low-level.mdx +21 -16
- package/docs/en/guides/advanced-features/page-performance/code-split.mdx +4 -4
- package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
- package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
- package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
- package/docs/en/guides/advanced-features/rspack-start.mdx +2 -22
- package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +62 -34
- package/docs/en/guides/advanced-features/web-server.mdx +82 -299
- package/docs/en/guides/basic-features/_meta.json +6 -1
- package/docs/en/guides/basic-features/css/css-in-js.mdx +46 -11
- package/docs/en/guides/basic-features/css/css-modules.mdx +5 -17
- package/docs/en/guides/basic-features/css/css.mdx +3 -3
- package/docs/en/guides/basic-features/css/tailwindcss.mdx +5 -89
- package/docs/en/guides/basic-features/data/data-cache.mdx +5 -1
- package/docs/en/guides/basic-features/data/data-fetch.mdx +4 -4
- package/docs/en/guides/basic-features/data/data-write.mdx +2 -2
- package/docs/en/guides/basic-features/debug/mock.mdx +4 -1
- package/docs/en/guides/basic-features/debug/proxy.mdx +0 -8
- package/docs/en/guides/basic-features/debug/rsdoctor.mdx +5 -5
- package/docs/en/guides/basic-features/deploy.mdx +25 -18
- package/docs/en/guides/basic-features/env-vars.mdx +1 -1
- package/docs/en/guides/basic-features/html.mdx +1 -1
- package/docs/en/guides/basic-features/output-files.mdx +3 -3
- package/docs/en/guides/basic-features/render/_meta.json +1 -1
- package/docs/en/guides/basic-features/render/before-render.mdx +16 -23
- package/docs/en/guides/basic-features/render/overview.mdx +51 -0
- package/docs/en/guides/basic-features/render/rsc.mdx +394 -0
- package/docs/en/guides/basic-features/render/ssg.mdx +26 -62
- package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -6
- package/docs/en/guides/basic-features/render/ssr.mdx +31 -31
- package/docs/en/guides/basic-features/render/streaming-ssr.mdx +29 -9
- package/docs/en/guides/basic-features/routes/_meta.json +1 -0
- package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
- package/docs/en/guides/basic-features/{routes.mdx → routes/routes.mdx} +7 -110
- package/docs/en/guides/basic-features/static-assets/json-files.mdx +21 -3
- package/docs/en/guides/basic-features/static-assets.mdx +2 -2
- package/docs/en/guides/concept/builder.mdx +24 -9
- package/docs/en/guides/concept/entries.mdx +139 -147
- package/docs/en/guides/get-started/glossary.mdx +0 -18
- package/docs/en/guides/get-started/introduction.mdx +1 -4
- package/docs/en/guides/get-started/quick-start.mdx +8 -73
- package/docs/en/guides/get-started/tech-stack.mdx +7 -25
- package/docs/en/guides/get-started/upgrade.mdx +30 -23
- package/docs/en/guides/topic-detail/_meta.json +0 -12
- package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -1
- package/docs/en/guides/topic-detail/module-federation/application.mdx +16 -15
- package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
- package/docs/en/guides/topic-detail/module-federation/introduce.mdx +5 -4
- package/docs/en/guides/topic-detail/module-federation/ssr.mdx +50 -2
- package/docs/en/guides/topic-detail/module-federation/usage.mdx +10 -30
- package/docs/en/guides/troubleshooting/builder.mdx +3 -82
- package/docs/en/guides/troubleshooting/cli.mdx +6 -30
- package/docs/en/guides/troubleshooting/dependencies.mdx +22 -22
- package/docs/en/plugin/cli-plugins/api.mdx +4 -5
- package/docs/en/plugin/cli-plugins/migration.mdx +33 -48
- package/docs/en/plugin/introduction.mdx +39 -27
- package/docs/en/plugin/official/_meta.json +0 -5
- package/docs/en/plugin/official/cli-plugins/_meta.json +1 -1
- package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
- package/docs/en/plugin/official/cli-plugins.mdx +0 -2
- package/docs/en/plugin/plugin-system.mdx +68 -61
- package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
- package/docs/en/plugin/runtime-plugins/migration.mdx +29 -20
- package/docs/en/tutorials/_meta.json +0 -10
- package/docs/en/tutorials/examples/csr-auth.mdx +1 -1
- package/docs/en/tutorials/foundations/introduction.mdx +9 -25
- package/docs/zh/{_meta.json → _nav.json} +10 -6
- package/docs/zh/apis/app/commands.mdx +2 -3
- package/docs/zh/apis/app/hooks/src/entry.mdx +1 -5
- package/docs/zh/apis/app/hooks/src/entry.server.mdx +4 -5
- package/docs/zh/apis/app/hooks/src/routes.mdx +2 -2
- package/docs/zh/apis/app/runtime/_meta.json +0 -18
- package/docs/zh/apis/app/runtime/bff/use-hono-context.mdx +2 -2
- package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +3 -2
- package/docs/zh/community/blog/v2-release-note.mdx +0 -2
- package/docs/zh/community/contributing-guide.mdx +10 -12
- package/docs/zh/components/auto-upgrade.mdx +0 -0
- package/docs/zh/components/bff-upload.mdx +8 -5
- package/docs/zh/components/build-output.mdx +45 -0
- package/docs/zh/components/debug-app.mdx +1 -1
- package/docs/zh/components/enable-bff-caution.mdx +1 -1
- package/docs/zh/components/enable-bff.mdx +37 -8
- package/docs/zh/components/enable-ssg.mdx +47 -0
- package/docs/zh/components/entry-scan-logic.mdx +7 -0
- package/docs/zh/components/init-app.mdx +40 -18
- package/docs/zh/components/international/install-command.mdx +8 -0
- package/docs/zh/components/international/introduce.mdx +2 -0
- package/docs/zh/components/international/platform-support.mdx +0 -0
- package/docs/zh/components/module-federation.mdx +4 -4
- package/docs/zh/components/new-entry-tooltip.mdx +0 -0
- package/docs/zh/components/nodeVersion.mdx +3 -7
- package/docs/zh/components/prerequisites.mdx +1 -1
- package/docs/zh/components/self-route-example.mdx +3 -3
- package/docs/zh/components/ua-polyfill.mdx +11 -6
- package/docs/zh/components/upgrade-browserslist.mdx +0 -0
- package/docs/zh/configure/_meta.json +7 -8
- package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
- package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
- package/docs/zh/configure/app/dev/server.mdx +104 -0
- package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
- package/docs/zh/configure/app/html/app-icon.mdx +1 -23
- package/docs/zh/configure/app/output/inline-scripts.mdx +1 -1
- package/docs/zh/configure/app/output/override-browserslist.mdx +3 -3
- package/docs/zh/configure/app/output/source-map.mdx +10 -3
- package/docs/zh/configure/app/output/ssg.mdx +13 -45
- package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
- package/docs/zh/configure/app/performance/build-cache.mdx +0 -4
- package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
- package/docs/zh/configure/app/resolve/alias.mdx +13 -0
- package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
- package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
- package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
- package/docs/zh/configure/app/runtime/0-intro.mdx +2 -53
- package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
- package/docs/zh/configure/app/server/port.mdx +2 -21
- package/docs/zh/configure/app/server/rsc.mdx +30 -0
- package/docs/zh/configure/app/server/ssr.mdx +21 -11
- package/docs/zh/configure/app/source/decorators.mdx +4 -4
- package/docs/zh/configure/app/source/entries.mdx +0 -2
- package/docs/zh/configure/app/source/main-entry-name.mdx +4 -4
- package/docs/zh/configure/app/source/transform-import.mdx +1 -59
- package/docs/zh/configure/app/tools/bundler-chain.mdx +6 -6
- package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
- package/docs/zh/configure/app/tools/dev-server.mdx +14 -248
- package/docs/zh/configure/app/tools/html-plugin.mdx +3 -2
- package/docs/zh/configure/app/tools/lightningcss-loader.mdx +0 -1
- package/docs/zh/configure/app/tools/swc.mdx +1 -43
- package/docs/zh/configure/app/usage.mdx +8 -18
- package/docs/zh/guides/_meta.json +5 -1
- package/docs/zh/guides/advanced-features/_meta.json +6 -1
- package/docs/zh/guides/advanced-features/bff/cross-project.mdx +8 -16
- package/docs/zh/guides/advanced-features/bff/extend-server.mdx +25 -8
- package/docs/zh/guides/advanced-features/bff/frameworks.mdx +1 -1
- package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
- package/docs/zh/guides/advanced-features/bff/sdk.mdx +4 -4
- package/docs/zh/guides/advanced-features/build-performance.mdx +23 -30
- package/docs/zh/guides/advanced-features/compatibility.mdx +44 -0
- package/docs/zh/guides/advanced-features/international/_meta.json +11 -0
- package/docs/zh/guides/advanced-features/international/advanced.mdx +193 -0
- package/docs/zh/guides/advanced-features/international/api.mdx +400 -0
- package/docs/zh/guides/advanced-features/international/basic.mdx +416 -0
- package/docs/zh/guides/advanced-features/international/best-practices.mdx +135 -0
- package/docs/zh/guides/advanced-features/international/configuration.mdx +441 -0
- package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
- package/docs/zh/guides/advanced-features/international/quick-start.mdx +149 -0
- package/docs/zh/guides/advanced-features/international/resource-loading.mdx +417 -0
- package/docs/zh/guides/advanced-features/international/routing.mdx +212 -0
- package/docs/zh/guides/advanced-features/international.mdx +36 -0
- package/docs/zh/guides/advanced-features/low-level.mdx +21 -16
- package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +3 -3
- package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
- package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +7 -21
- package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +1 -8
- package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +63 -35
- package/docs/zh/guides/advanced-features/web-server.mdx +79 -300
- package/docs/zh/guides/basic-features/_meta.json +6 -1
- package/docs/zh/guides/basic-features/css/css-in-js.mdx +40 -5
- package/docs/zh/guides/basic-features/css/css-modules.mdx +6 -17
- package/docs/zh/guides/basic-features/css/css.mdx +2 -2
- package/docs/zh/guides/basic-features/css/tailwindcss.mdx +6 -90
- package/docs/zh/guides/basic-features/data/data-cache.mdx +8 -5
- package/docs/zh/guides/basic-features/data/data-fetch.mdx +6 -5
- package/docs/zh/guides/basic-features/data/data-write.mdx +4 -4
- package/docs/zh/guides/basic-features/debug/mock.mdx +4 -1
- package/docs/zh/guides/basic-features/debug/proxy.mdx +0 -8
- package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +6 -6
- package/docs/zh/guides/basic-features/deploy.mdx +24 -20
- package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
- package/docs/zh/guides/basic-features/html.mdx +2 -2
- package/docs/zh/guides/basic-features/output-files.mdx +3 -3
- package/docs/zh/guides/basic-features/render/_meta.json +1 -1
- package/docs/zh/guides/basic-features/render/before-render.mdx +17 -24
- package/docs/zh/guides/basic-features/render/overview.mdx +52 -0
- package/docs/zh/guides/basic-features/render/rsc.mdx +413 -0
- package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
- package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -5
- package/docs/zh/guides/basic-features/render/ssr.mdx +34 -31
- package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +34 -14
- package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
- package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
- package/docs/zh/guides/basic-features/{routes.mdx → routes/routes.mdx} +8 -114
- package/docs/zh/guides/basic-features/static-assets/json-files.mdx +21 -3
- package/docs/zh/guides/basic-features/static-assets.mdx +2 -2
- package/docs/zh/guides/basic-features/testing/cypress.mdx +5 -5
- package/docs/zh/guides/basic-features/testing/jest.mdx +12 -12
- package/docs/zh/guides/concept/builder.mdx +24 -9
- package/docs/zh/guides/concept/entries.mdx +95 -92
- package/docs/zh/guides/get-started/glossary.mdx +0 -18
- package/docs/zh/guides/get-started/introduction.mdx +1 -5
- package/docs/zh/guides/get-started/quick-start.mdx +5 -72
- package/docs/zh/guides/get-started/tech-stack.mdx +8 -26
- package/docs/zh/guides/get-started/upgrade.mdx +30 -23
- package/docs/zh/guides/topic-detail/_meta.json +0 -12
- package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -1
- package/docs/zh/guides/topic-detail/module-federation/application.mdx +18 -16
- package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
- package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +4 -4
- package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +51 -5
- package/docs/zh/guides/topic-detail/module-federation/usage.mdx +11 -32
- package/docs/zh/guides/troubleshooting/builder.mdx +3 -84
- package/docs/zh/guides/troubleshooting/cli.mdx +6 -30
- package/docs/zh/guides/troubleshooting/dependencies.mdx +23 -23
- package/docs/zh/guides/upgrade/_meta.json +1 -0
- package/docs/zh/guides/upgrade/config.mdx +809 -0
- package/docs/zh/guides/upgrade/entry.mdx +463 -0
- package/docs/zh/guides/upgrade/other.md +90 -0
- package/docs/zh/guides/upgrade/overview.mdx +36 -0
- package/docs/zh/guides/upgrade/tailwindcss.mdx +130 -0
- package/docs/zh/guides/upgrade/web-server.md +93 -0
- package/docs/zh/plugin/cli-plugins/api.mdx +4 -5
- package/docs/zh/plugin/cli-plugins/migration.mdx +30 -45
- package/docs/zh/plugin/introduction.mdx +36 -24
- package/docs/zh/plugin/official/_meta.json +0 -5
- package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -1
- package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
- package/docs/zh/plugin/official/cli-plugins.mdx +0 -2
- package/docs/zh/plugin/plugin-system.mdx +45 -42
- package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
- package/docs/zh/plugin/runtime-plugins/migration.mdx +26 -17
- package/docs/zh/tutorials/_meta.json +0 -10
- package/docs/zh/tutorials/examples/csr-auth.mdx +1 -1
- package/docs/zh/tutorials/foundations/introduction.mdx +8 -25
- package/i18n.json +0 -16
- package/package.json +12 -12
- package/rspress.config.ts +5 -8
- package/src/components/ContentCard/index.module.scss +11 -7
- package/src/components/ContentCard/index.tsx +1 -1
- package/src/components/FeatureLayout/index.module.css +1 -1
- package/src/components/Footer/index.tsx +2 -14
- package/src/components/Footer/styles.module.scss +5 -5
- package/src/components/ListCard/index.tsx +1 -1
- package/src/components/RandomMemberList/index.tsx +1 -1
- package/src/components/RsbuildLink/index.tsx +1 -1
- package/src/components/Sandpack/index.tsx +1 -1
- package/src/custom.scss +15 -0
- package/src/i18n/enUS.ts +2 -4
- package/src/i18n/index.ts +1 -1
- package/src/i18n/zhCN.ts +2 -4
- package/src/index.ts +2 -1
- package/src/pages/index.module.scss +59 -41
- package/src/pages/index.tsx +9 -24
- package/docs/en/apis/app/hooks/server/index_.mdx +0 -10
- package/docs/en/apis/app/hooks/src/index_.mdx +0 -38
- package/docs/en/apis/app/hooks/src/stories.mdx +0 -16
- package/docs/en/apis/app/runtime/app/define-config.mdx +0 -67
- package/docs/en/apis/app/runtime/core/bootstrap.mdx +0 -74
- package/docs/en/apis/app/runtime/core/create-app.mdx +0 -49
- package/docs/en/apis/app/runtime/core/use-loader.mdx +0 -89
- package/docs/en/apis/app/runtime/core/use-module-apps.mdx +0 -140
- package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +0 -116
- package/docs/en/apis/app/runtime/model/Provider.mdx +0 -36
- package/docs/en/apis/app/runtime/model/auto-actions.mdx +0 -122
- package/docs/en/apis/app/runtime/model/connect.mdx +0 -146
- package/docs/en/apis/app/runtime/model/create-app.mdx +0 -75
- package/docs/en/apis/app/runtime/model/create-store.mdx +0 -61
- package/docs/en/apis/app/runtime/model/handle-effect.mdx +0 -107
- package/docs/en/apis/app/runtime/model/model_.mdx +0 -198
- package/docs/en/apis/app/runtime/model/use-local-model.mdx +0 -29
- package/docs/en/apis/app/runtime/model/use-model.mdx +0 -89
- package/docs/en/apis/app/runtime/model/use-static-model.mdx +0 -51
- package/docs/en/apis/app/runtime/model/use-store.mdx +0 -26
- package/docs/en/apis/app/runtime/ssr/pre-render.mdx +0 -96
- package/docs/en/apis/app/runtime/web-server/hook.mdx +0 -134
- package/docs/en/apis/app/runtime/web-server/middleware.mdx +0 -113
- package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +0 -167
- package/docs/en/components/bff-proxy-path-rewrite.mdx +0 -16
- package/docs/en/components/bff-proxy-principle.mdx +0 -1
- package/docs/en/components/builder.mdx +0 -3
- package/docs/en/components/create-bff-api-app.mdx +0 -25
- package/docs/en/components/custom-router-micro-frontend.mdx +0 -40
- package/docs/en/components/enable-micro-frontend.mdx +0 -30
- package/docs/en/components/enableSwc.mdx +0 -17
- package/docs/en/components/global-proxy-config.mdx +0 -85
- package/docs/en/components/global-proxy.mdx +0 -29
- package/docs/en/components/package-manager.mdx +0 -11
- package/docs/en/components/reduck-notify.mdx +0 -27
- package/docs/en/components/reduck-tip.mdx +0 -8
- package/docs/en/configure/app/auto-load-plugin.mdx +0 -66
- package/docs/en/configure/app/deploy/microFrontend.mdx +0 -53
- package/docs/en/configure/app/dev/port.mdx +0 -25
- package/docs/en/configure/app/dev/proxy.mdx +0 -9
- package/docs/en/configure/app/experiments/lazy-compilation.mdx +0 -106
- package/docs/en/configure/app/html/disable-html-folder.mdx +0 -46
- package/docs/en/configure/app/html/favicon-by-entries.mdx +0 -36
- package/docs/en/configure/app/html/inject-by-entries.mdx +0 -36
- package/docs/en/configure/app/html/meta-by-entries.mdx +0 -48
- package/docs/en/configure/app/html/tags-by-entries.mdx +0 -44
- package/docs/en/configure/app/html/template-by-entries.mdx +0 -33
- package/docs/en/configure/app/html/template-parameters-by-entries.mdx +0 -35
- package/docs/en/configure/app/html/title-by-entries.mdx +0 -37
- package/docs/en/configure/app/output/css-module-local-ident-name.mdx +0 -21
- package/docs/en/configure/app/output/disable-css-extract.mdx +0 -16
- package/docs/en/configure/app/output/disable-filename-hash.mdx +0 -16
- package/docs/en/configure/app/output/disable-minimize.mdx +0 -14
- package/docs/en/configure/app/output/disable-node-polyfill.mdx +0 -22
- package/docs/en/configure/app/output/disable-source-map.mdx +0 -31
- package/docs/en/configure/app/output/enable-asset-fallback.mdx +0 -36
- package/docs/en/configure/app/output/enable-inline-scripts.mdx +0 -22
- package/docs/en/configure/app/output/enable-inline-styles.mdx +0 -22
- package/docs/en/configure/app/output/enable-latest-decorators.mdx +0 -14
- package/docs/en/configure/app/performance/transform-lodash.mdx +0 -52
- package/docs/en/configure/app/runtime/master-app.mdx +0 -36
- package/docs/en/configure/app/runtime/state.mdx +0 -52
- package/docs/en/configure/app/source/disable-entry-dirs.mdx +0 -38
- package/docs/en/configure/app/source/enable-custom-entry.mdx +0 -68
- package/docs/en/configure/app/source/module-scopes.mdx +0 -72
- package/docs/en/configure/app/source/resolve-extension-prefix.mdx +0 -55
- package/docs/en/configure/app/source/resolve-main-fields.mdx +0 -46
- package/docs/en/configure/app/tools/esbuild.mdx +0 -44
- package/docs/en/configure/app/tools/pug.mdx +0 -54
- package/docs/en/configure/app/tools/styled-components.mdx +0 -55
- package/docs/en/configure/app/tools/tailwindcss.mdx +0 -98
- package/docs/en/configure/app/tools/terser.mdx +0 -58
- package/docs/en/configure/app/tools/ts-loader.mdx +0 -76
- package/docs/en/configure/app/tools/webpack-chain.mdx +0 -249
- package/docs/en/configure/app/tools/webpack.mdx +0 -305
- package/docs/en/guides/deprecated.md +0 -17
- package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -27
- package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -290
- package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -298
- package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
- package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
- package/docs/en/guides/topic-detail/model/_meta.json +0 -14
- package/docs/en/guides/topic-detail/model/auto-actions.mdx +0 -85
- package/docs/en/guides/topic-detail/model/computed-state.mdx +0 -148
- package/docs/en/guides/topic-detail/model/define-model.mdx +0 -62
- package/docs/en/guides/topic-detail/model/faq.mdx +0 -35
- package/docs/en/guides/topic-detail/model/manage-effects.mdx +0 -247
- package/docs/en/guides/topic-detail/model/model-communicate.mdx +0 -217
- package/docs/en/guides/topic-detail/model/performance.mdx +0 -167
- package/docs/en/guides/topic-detail/model/quick-start.mdx +0 -117
- package/docs/en/guides/topic-detail/model/redux-integration.mdx +0 -20
- package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +0 -68
- package/docs/en/guides/topic-detail/model/use-model.mdx +0 -243
- package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
- package/docs/en/plugin/official/cli-plugins/plugin-swc.mdx +0 -363
- package/docs/en/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
- package/docs/en/plugin/official/rsbuild-plugins/_meta.json +0 -1
- package/docs/en/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -205
- package/docs/en/plugin/official/rsbuild-plugins.mdx +0 -3
- package/docs/en/tutorials/first-app/c01-start.mdx +0 -99
- package/docs/en/tutorials/first-app/c02-component.mdx +0 -60
- package/docs/en/tutorials/first-app/c03-css.mdx +0 -324
- package/docs/en/tutorials/first-app/c04-routes.mdx +0 -172
- package/docs/en/tutorials/first-app/c05-loader.mdx +0 -87
- package/docs/en/tutorials/first-app/c06-model.mdx +0 -278
- package/docs/en/tutorials/first-app/c07-container.mdx +0 -281
- package/docs/en/tutorials/first-app/c08-entries.mdx +0 -135
- package/docs/zh/apis/app/hooks/server/index_.mdx +0 -10
- package/docs/zh/apis/app/hooks/src/index_.mdx +0 -39
- package/docs/zh/apis/app/hooks/src/stories.mdx +0 -16
- package/docs/zh/apis/app/runtime/app/define-config.mdx +0 -67
- package/docs/zh/apis/app/runtime/core/bootstrap.mdx +0 -74
- package/docs/zh/apis/app/runtime/core/create-app.mdx +0 -35
- package/docs/zh/apis/app/runtime/core/use-loader.mdx +0 -89
- package/docs/zh/apis/app/runtime/core/use-module-apps.mdx +0 -179
- package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +0 -116
- package/docs/zh/apis/app/runtime/model/Provider.mdx +0 -36
- package/docs/zh/apis/app/runtime/model/auto-actions.mdx +0 -122
- package/docs/zh/apis/app/runtime/model/connect.mdx +0 -143
- package/docs/zh/apis/app/runtime/model/create-app.mdx +0 -75
- package/docs/zh/apis/app/runtime/model/create-store.mdx +0 -61
- package/docs/zh/apis/app/runtime/model/handle-effect.mdx +0 -108
- package/docs/zh/apis/app/runtime/model/model_.mdx +0 -201
- package/docs/zh/apis/app/runtime/model/use-local-model.mdx +0 -29
- package/docs/zh/apis/app/runtime/model/use-model.mdx +0 -89
- package/docs/zh/apis/app/runtime/model/use-static-model.mdx +0 -49
- package/docs/zh/apis/app/runtime/model/use-store.mdx +0 -26
- package/docs/zh/apis/app/runtime/ssr/pre-render.mdx +0 -96
- package/docs/zh/apis/app/runtime/web-server/hook.mdx +0 -136
- package/docs/zh/apis/app/runtime/web-server/middleware.mdx +0 -114
- package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +0 -165
- package/docs/zh/components/bff-proxy-path-rewrite.mdx +0 -16
- package/docs/zh/components/bff-proxy-principle.mdx +0 -1
- package/docs/zh/components/builder.mdx +0 -3
- package/docs/zh/components/create-bff-api-app.mdx +0 -25
- package/docs/zh/components/custom-router-micro-frontend.mdx +0 -40
- package/docs/zh/components/enable-micro-frontend.mdx +0 -30
- package/docs/zh/components/enableSwc.mdx +0 -17
- package/docs/zh/components/global-proxy-config.mdx +0 -85
- package/docs/zh/components/global-proxy.mdx +0 -29
- package/docs/zh/components/package-manager.mdx +0 -11
- package/docs/zh/components/reduck-notify.mdx +0 -27
- package/docs/zh/components/reduck-tip.mdx +0 -8
- package/docs/zh/configure/app/auto-load-plugin.mdx +0 -66
- package/docs/zh/configure/app/deploy/microFrontend.mdx +0 -55
- package/docs/zh/configure/app/dev/port.mdx +0 -25
- package/docs/zh/configure/app/dev/proxy.mdx +0 -9
- package/docs/zh/configure/app/experiments/lazy-compilation.mdx +0 -105
- package/docs/zh/configure/app/html/disable-html-folder.mdx +0 -45
- package/docs/zh/configure/app/html/favicon-by-entries.mdx +0 -37
- package/docs/zh/configure/app/html/inject-by-entries.mdx +0 -37
- package/docs/zh/configure/app/html/meta-by-entries.mdx +0 -48
- package/docs/zh/configure/app/html/tags-by-entries.mdx +0 -44
- package/docs/zh/configure/app/html/template-by-entries.mdx +0 -33
- package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +0 -36
- package/docs/zh/configure/app/html/title-by-entries.mdx +0 -37
- package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +0 -21
- package/docs/zh/configure/app/output/disable-css-extract.mdx +0 -16
- package/docs/zh/configure/app/output/disable-filename-hash.mdx +0 -16
- package/docs/zh/configure/app/output/disable-minimize.mdx +0 -14
- package/docs/zh/configure/app/output/disable-node-polyfill.mdx +0 -22
- package/docs/zh/configure/app/output/disable-source-map.mdx +0 -31
- package/docs/zh/configure/app/output/enable-asset-fallback.mdx +0 -36
- package/docs/zh/configure/app/output/enable-inline-scripts.mdx +0 -22
- package/docs/zh/configure/app/output/enable-inline-styles.mdx +0 -22
- package/docs/zh/configure/app/output/enable-latest-decorators.mdx +0 -14
- package/docs/zh/configure/app/performance/transform-lodash.mdx +0 -52
- package/docs/zh/configure/app/runtime/master-app.mdx +0 -38
- package/docs/zh/configure/app/runtime/state.mdx +0 -52
- package/docs/zh/configure/app/source/disable-entry-dirs.mdx +0 -38
- package/docs/zh/configure/app/source/enable-custom-entry.mdx +0 -67
- package/docs/zh/configure/app/source/module-scopes.mdx +0 -72
- package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +0 -57
- package/docs/zh/configure/app/source/resolve-main-fields.mdx +0 -46
- package/docs/zh/configure/app/tools/esbuild.mdx +0 -44
- package/docs/zh/configure/app/tools/pug.mdx +0 -54
- package/docs/zh/configure/app/tools/styled-components.mdx +0 -54
- package/docs/zh/configure/app/tools/tailwindcss.mdx +0 -98
- package/docs/zh/configure/app/tools/terser.mdx +0 -58
- package/docs/zh/configure/app/tools/ts-loader.mdx +0 -76
- package/docs/zh/configure/app/tools/webpack-chain.mdx +0 -253
- package/docs/zh/configure/app/tools/webpack.mdx +0 -305
- package/docs/zh/guides/advanced-features/rspack-start.mdx +0 -154
- package/docs/zh/guides/deprecated.md +0 -19
- package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -26
- package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +0 -332
- package/docs/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -296
- package/docs/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
- package/docs/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -27
- package/docs/zh/guides/topic-detail/model/_meta.json +0 -14
- package/docs/zh/guides/topic-detail/model/auto-actions.mdx +0 -88
- package/docs/zh/guides/topic-detail/model/computed-state.mdx +0 -147
- package/docs/zh/guides/topic-detail/model/define-model.mdx +0 -63
- package/docs/zh/guides/topic-detail/model/faq.mdx +0 -36
- package/docs/zh/guides/topic-detail/model/manage-effects.mdx +0 -256
- package/docs/zh/guides/topic-detail/model/model-communicate.mdx +0 -217
- package/docs/zh/guides/topic-detail/model/performance.mdx +0 -167
- package/docs/zh/guides/topic-detail/model/quick-start.mdx +0 -117
- package/docs/zh/guides/topic-detail/model/redux-integration.mdx +0 -20
- package/docs/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -67
- package/docs/zh/guides/topic-detail/model/use-model.mdx +0 -248
- package/docs/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
- package/docs/zh/plugin/official/cli-plugins/plugin-swc.mdx +0 -351
- package/docs/zh/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
- package/docs/zh/plugin/official/rsbuild-plugins/_meta.json +0 -1
- package/docs/zh/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -201
- package/docs/zh/plugin/official/rsbuild-plugins.mdx +0 -3
- package/docs/zh/tutorials/first-app/c01-start.mdx +0 -99
- package/docs/zh/tutorials/first-app/c02-component.mdx +0 -60
- package/docs/zh/tutorials/first-app/c03-css.mdx +0 -323
- package/docs/zh/tutorials/first-app/c04-routes.mdx +0 -172
- package/docs/zh/tutorials/first-app/c05-loader.mdx +0 -89
- package/docs/zh/tutorials/first-app/c06-model.mdx +0 -274
- package/docs/zh/tutorials/first-app/c07-container.mdx +0 -281
- package/docs/zh/tutorials/first-app/c08-entries.mdx +0 -135
- /package/docs/en/components/{reduck-migration.mdx → auto-upgrade.mdx} +0 -0
- /package/docs/{zh/components/reduck-migration.mdx → en/components/international/platform-support.mdx} +0 -0
|
@@ -70,21 +70,36 @@ export default defineRuntimeConfig({
|
|
|
70
70
|
});
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
{/* #### Server Plugins
|
|
73
|
+
#### Server Plugins
|
|
75
74
|
|
|
76
75
|
Server plugins are used to provide additional functionality when the application receives requests, such as adding middleware and modifying request responses.
|
|
77
76
|
|
|
78
77
|
Server plugins are configured via the `plugins` field in `server/modern.server.ts`.
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
import {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
```ts title="server/modern.server.ts"
|
|
80
|
+
import { defineServerConfig } from '@modern-js/server-runtime';
|
|
81
|
+
|
|
82
|
+
export default defineServerConfig({
|
|
83
|
+
plugins: [
|
|
84
|
+
{
|
|
85
|
+
name: 'custom-plugin-in-config',
|
|
86
|
+
setup: api => {
|
|
87
|
+
api.onPrepare(() => {
|
|
88
|
+
const { middlewares } = api.getServerContext();
|
|
89
|
+
|
|
90
|
+
middlewares?.push({
|
|
91
|
+
name: 'server-plugin-middleware',
|
|
92
|
+
handler: async (c, next) => {
|
|
93
|
+
c.res.headers.set('x-render-middleware-plugin', 'ok');
|
|
94
|
+
await next();
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
86
101
|
});
|
|
87
|
-
```
|
|
102
|
+
```
|
|
88
103
|
|
|
89
104
|
:::tip
|
|
90
105
|
Modern.js officially uses the new plugin mechanism starting from `MAJOR_VERSION.66.0`.
|
|
@@ -105,7 +120,7 @@ Rsbuild is the underlying build tool for Modern.js. By adding Rsbuild plugins, y
|
|
|
105
120
|
- Modifying or compiling files
|
|
106
121
|
- Deploying artifacts
|
|
107
122
|
|
|
108
|
-
You can register Rsbuild plugins in `modern.config.ts` via the `builderPlugins` option.
|
|
123
|
+
You can register Rsbuild plugins in `modern.config.ts` via the `builderPlugins` option. See [builderPlugins](/configure/app/builder-plugins.html) for details.
|
|
109
124
|
|
|
110
125
|
:::tip
|
|
111
126
|
Starting from `MAJOR_VERSION.46.0`, Modern.js upgraded its underlying build tool to [Rsbuild](https://rsbuild.rs/).
|
|
@@ -121,23 +136,18 @@ You can read [Rsbuild Official Website - Plugins](https://rsbuild.rs/plugins/lis
|
|
|
121
136
|
|
|
122
137
|
#### Built-in Plugins
|
|
123
138
|
|
|
124
|
-
The following are official Rsbuild plugins that are already built into Modern.js.
|
|
125
|
-
|
|
126
|
-
| Plugin
|
|
127
|
-
|
|
|
128
|
-
| [React Plugin](https://rsbuild.rs/zh/plugins/list/plugin-react)
|
|
129
|
-
| [SVGR Plugin](https://rsbuild.rs/zh/plugins/list/plugin-svgr)
|
|
130
|
-
| [
|
|
131
|
-
| [
|
|
132
|
-
| [
|
|
133
|
-
| [
|
|
134
|
-
| [
|
|
135
|
-
| [
|
|
136
|
-
| [CSS Minimizer Plugin](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer) | Used to customize the CSS compression tool, switch to [cssnano](https://cssnano.co/) or other tools for CSS compression | [tools.minifyCss](/configure/app/tools/minify-css.html) |
|
|
137
|
-
| [Pug Plugin](https://github.com/rspack-contrib/rsbuild-plugin-pug) | Provides support for the Pug template engine | [tools.pug](/configure/app/tools/pug.html) |
|
|
138
|
-
| [Rem Plugin](https://github.com/rspack-contrib/rsbuild-plugin-rem) | Implements rem adaptive layout for mobile pages | [output.convertToRem](/configure/app/output/convert-to-rem.html) |
|
|
139
|
-
| [YAML Plugin](https://github.com/rspack-contrib/rsbuild-plugin-yaml) | Used to reference YAML files and convert them to JavaScript objects | [YAML Files](/guides/basic-features/static-assets/json-files.html#yaml-files) |
|
|
140
|
-
| [TOML Plugin](https://github.com/rspack-contrib/rsbuild-plugin-toml) | Used to reference TOML files and convert them to JavaScript objects | [TOML Files](/guides/basic-features/static-assets/json-files.html#toml-files) |
|
|
139
|
+
The following are official Rsbuild plugins that are already built into Modern.js. They can be enabled without installation:
|
|
140
|
+
|
|
141
|
+
| Plugin | Description | Modern.js Link |
|
|
142
|
+
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
143
|
+
| [React Plugin](https://rsbuild.rs/zh/plugins/list/plugin-react) | Provides support for React | - |
|
|
144
|
+
| [SVGR Plugin](https://rsbuild.rs/zh/plugins/list/plugin-svgr) | Supports converting SVG images into React components | [output.disableSvgr](/configure/app/output/disable-svgr)<br />[output.svgDefaultExport](/configure/app/output/svg-default-export) |
|
|
145
|
+
| [Assets Retry Plugin](https://rsbuild.rs/zh/plugins/list/plugin-assets-retry) | Automatically retries requests when static asset loading fails | [output.assetsRetry](/configure/app/output/assets-retry.html) |
|
|
146
|
+
| [Type Check Plugin](https://github.com/rspack-contrib/rsbuild-plugin-type-check) | Runs TypeScript type checking in a separate process | [output.disableTsChecker](/configure/app/output/disable-ts-checker.html)<br />[tools.tsChecker](/configure/app/tools/ts-checker.html) |
|
|
147
|
+
| [Source Build Plugin](https://github.com/rspack-contrib/rsbuild-plugin-source-build) | For monorepo scenarios, supports referencing source code from other subdirectories and completing builds and hot updates | [experiments.sourceBuild](/configure/app/experiments/source-build.html) |
|
|
148
|
+
| [Check Syntax Plugin](https://github.com/rspack-contrib/rsbuild-plugin-check-syntax) | Analyzes the syntax compatibility of the build artifacts to determine if there are any advanced syntax features that cause compatibility issues | [security.checkSyntax](/configure/app/security/check-syntax.html) |
|
|
149
|
+
| [CSS Minimizer Plugin](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer) | Used to customize the CSS compression tool, switch to [cssnano](https://cssnano.co/) or other tools for CSS compression | [tools.minifyCss](/configure/app/tools/minify-css.html) |
|
|
150
|
+
| [Rem Plugin](https://github.com/rspack-contrib/rsbuild-plugin-rem) | Implements rem adaptive layout for mobile pages | [output.convertToRem](/configure/app/output/convert-to-rem.html) |
|
|
141
151
|
|
|
142
152
|
#### Plugins Not Built-in
|
|
143
153
|
|
|
@@ -146,6 +156,8 @@ The following are official Rsbuild plugins that are not built into Modern.js:
|
|
|
146
156
|
- [Image Compress Plugin](https://github.com/rspack-contrib/rsbuild-plugin-image-compress): Compresses image resources used in the project.
|
|
147
157
|
- [Stylus Plugin](https://rsbuild.rs/zh/plugins/list/plugin-stylus): Uses Stylus as the CSS preprocessor.
|
|
148
158
|
- [UMD Plugin](https://github.com/rspack-contrib/rsbuild-plugin-umd): Used to build UMD format artifacts.
|
|
159
|
+
- [YAML Plugin](https://github.com/rspack-contrib/rsbuild-plugin-yaml): Used to reference YAML files and convert them to JavaScript objects.
|
|
160
|
+
- [TOML Plugin](https://github.com/rspack-contrib/rsbuild-plugin-toml): Used to reference TOML files and convert them to JavaScript objects.
|
|
149
161
|
|
|
150
162
|
import OtherPlugins from '@site-docs-en/components/other-plugins.mdx';
|
|
151
163
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
["plugin-
|
|
1
|
+
["plugin-bff", "plugin-ssg", "plugin-styled-components"]
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# styled-components Plugin
|
|
2
|
+
|
|
3
|
+
In a Modern.js application, developers can use the styled-components plugin to utilize the styled-components library within the app, enabling CSS-in-JS functionality.
|
|
4
|
+
|
|
5
|
+
For more details, please refer to [Using CSS-in-JS](/guides/basic-features/css/css-in-js).
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
# Overview
|
|
2
2
|
|
|
3
|
-
- [@modern-js/plugin-tailwindcss](/plugin/official/cli-plugins/plugin-tailwind): Enables the use of Tailwind CSS styles.
|
|
4
3
|
- [@modern-js/plugin-bff](/plugin/official/cli-plugins/plugin-bff): Provides BFF services and unified invocation capabilities.
|
|
5
4
|
- [@modern-js/plugin-ssg](/plugin/official/cli-plugins/plugin-ssg): Provides static site generation capabilities.
|
|
6
|
-
- [@modern-js/plugin-swc](/plugin/official/cli-plugins/plugin-swc): Provides SWC compilation support.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Plugin System
|
|
2
2
|
|
|
3
|
-
Modern.js adopts a highly extensible, plugin-based architecture, where its core functionalities and extended capabilities are implemented through plugins.
|
|
3
|
+
Modern.js adopts a highly extensible, plugin-based architecture, where its core functionalities and extended capabilities are implemented through plugins. The plugin system not only ensures the framework's flexibility but also provides developers with powerful customization options. This document focuses on how to write Modern.js plugins, helping you quickly get started with plugin development.
|
|
4
4
|
|
|
5
5
|
## Core Concept: Everything is a Plugin
|
|
6
6
|
|
|
7
7
|
Modern.js adheres to the design philosophy of "everything is a plugin," modularizing the framework's various functional components and assembling and extending them through plugins. This design brings several advantages, including:
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
9
|
+
- **High Cohesion, Low Coupling:** Each functional module is independently developed, tested, and maintained, reducing system complexity.
|
|
10
|
+
- **Flexible and Extensible:** Users can easily customize the framework's behavior by writing or combining plugins without modifying the core code.
|
|
11
|
+
- **Easy to Reuse:** Plugins can be shared across projects, improving development efficiency.
|
|
12
|
+
- **Progressive Enhancement:** Plugins are introduced on demand, without the complexity of carrying all functionalities from the start.
|
|
13
13
|
|
|
14
14
|
## Plugin Types and Use Cases
|
|
15
15
|
|
|
@@ -47,15 +47,15 @@ Modern.js provides three main plugin types, corresponding to different stages of
|
|
|
47
47
|
A typical Modern.js plugin consists of the following key parts:
|
|
48
48
|
|
|
49
49
|
```ts
|
|
50
|
-
import type { Plugin } from '@modern-js/plugin
|
|
50
|
+
import type { Plugin } from '@modern-js/plugin';
|
|
51
51
|
|
|
52
52
|
const myPlugin: Plugin = {
|
|
53
53
|
name: 'my-awesome-plugin', // The unique identifier of the plugin (required)
|
|
54
54
|
|
|
55
55
|
// Plugin dependencies and execution order (optional)
|
|
56
|
-
pre: [],
|
|
57
|
-
post: [],
|
|
58
|
-
required: []
|
|
56
|
+
pre: [], // List of plugin names to execute before this plugin, defaults to an empty array
|
|
57
|
+
post: [], // List of plugin names to execute after this plugin, defaults to an empty array
|
|
58
|
+
required: [], // List of required plugins; if a dependent plugin is not registered, an error will be thrown, defaults to an empty array
|
|
59
59
|
usePlugins: [], // List of plugin instances used internally, defaults to an empty array
|
|
60
60
|
|
|
61
61
|
// Register new Hooks (optional)
|
|
@@ -64,8 +64,12 @@ const myPlugin: Plugin = {
|
|
|
64
64
|
// The entry function of the plugin (required)
|
|
65
65
|
setup(api) {
|
|
66
66
|
// The core logic of the plugin, calling plugin APIs through the api object
|
|
67
|
-
api.modifyWebpackConfig(config => {
|
|
68
|
-
|
|
67
|
+
api.modifyWebpackConfig(config => {
|
|
68
|
+
/* ... */
|
|
69
|
+
});
|
|
70
|
+
api.onPrepare(() => {
|
|
71
|
+
/* ... */
|
|
72
|
+
});
|
|
69
73
|
// ... Other API calls
|
|
70
74
|
},
|
|
71
75
|
};
|
|
@@ -77,8 +81,8 @@ export default myPlugin;
|
|
|
77
81
|
|
|
78
82
|
##### `name`
|
|
79
83
|
|
|
80
|
-
-
|
|
81
|
-
-
|
|
84
|
+
- Type: `string`
|
|
85
|
+
- Description: Identifies the name of the plugin. This name must be unique within the plugin system; otherwise, the plugin will fail to load.
|
|
82
86
|
|
|
83
87
|
:::info
|
|
84
88
|
The plugin names declared in `pre`, `post`, and `required` refer to this `name` field.
|
|
@@ -86,28 +90,28 @@ The plugin names declared in `pre`, `post`, and `required` refer to this `name`
|
|
|
86
90
|
|
|
87
91
|
##### `setup`
|
|
88
92
|
|
|
89
|
-
-
|
|
90
|
-
-
|
|
93
|
+
- Type: `(api: PluginAPI) => MaybePromise<void>`
|
|
94
|
+
- Description: The main entry point for the plugin's logic.
|
|
91
95
|
|
|
92
96
|
###### `api`
|
|
93
97
|
|
|
94
|
-
-
|
|
95
|
-
-
|
|
98
|
+
- Type: `PluginAPI`
|
|
99
|
+
- Description: The plugin's API, containing the Hooks and utility functions supported by the plugin.
|
|
96
100
|
|
|
97
101
|
##### `pre`
|
|
98
102
|
|
|
99
|
-
-
|
|
100
|
-
-
|
|
103
|
+
- Type: `string[]`
|
|
104
|
+
- Description: Used to insert the plugin execution order. Plugins declared in `pre` will be executed before this plugin.
|
|
101
105
|
|
|
102
106
|
##### `post`
|
|
103
107
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
108
|
+
- Type: `string[]`
|
|
109
|
+
- Description: Used to determine the plugin execution order. Plugins declared in `post` will be executed after this plugin.
|
|
106
110
|
|
|
107
111
|
##### `required`
|
|
108
112
|
|
|
109
|
-
-
|
|
110
|
-
-
|
|
113
|
+
- Type: `string[]`
|
|
114
|
+
- Description: Other plugins that this plugin depends on. Before running, it will check if the dependent plugins are registered.
|
|
111
115
|
|
|
112
116
|
:::info
|
|
113
117
|
If unregistered plugin names are configured in `pre` or `post`, these plugin names will be **automatically ignored** and will not affect the execution of other plugins.
|
|
@@ -123,6 +127,7 @@ If you need to explicitly declare that the plugins that the current plugin depen
|
|
|
123
127
|
:::info
|
|
124
128
|
Plugins declared in `usePlugins` are executed before the current plugin by default. To execute them after, use the `post` declaration.
|
|
125
129
|
:::
|
|
130
|
+
|
|
126
131
|
##### `registryHooks`
|
|
127
132
|
|
|
128
133
|
- Type: `Record<string, PluginHook<(...args: any[]) => any>>`
|
|
@@ -134,104 +139,106 @@ The core of the Modern.js plugin system is its Hook model, which defines the com
|
|
|
134
139
|
|
|
135
140
|
### Async Hook
|
|
136
141
|
|
|
137
|
-
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
142
|
+
- **Characteristics:**
|
|
143
|
+
- Hook functions are executed asynchronously, supporting `async/await`.
|
|
144
|
+
- The return value of the previous Hook function is passed as the first argument to the next Hook function.
|
|
145
|
+
- Finally returns the return value of the last Hook function.
|
|
146
|
+
- **Use Cases:** Scenarios involving asynchronous operations (such as network requests, file reading/writing, etc.).
|
|
147
|
+
- **Creation Method:** Created using `createAsyncHook`.
|
|
143
148
|
|
|
144
149
|
Example:
|
|
145
150
|
|
|
146
151
|
```ts
|
|
147
152
|
// Define Hooks
|
|
148
|
-
import { createAsyncHook } from '@modern-js/plugin
|
|
153
|
+
import { createAsyncHook } from '@modern-js/plugin';
|
|
149
154
|
|
|
150
155
|
export type AfterPrepareFn = () => Promise<void> | void;
|
|
151
156
|
export const onAfterPrepare = createAsyncHook<AfterPrepareFn>();
|
|
152
157
|
|
|
153
158
|
// Register Hooks in the plugin
|
|
154
159
|
const myPlugin = () => ({
|
|
155
|
-
name:
|
|
160
|
+
name: 'my-plugin',
|
|
156
161
|
registryHooks: {
|
|
157
162
|
onAfterPrepare,
|
|
158
163
|
},
|
|
159
|
-
setup:
|
|
164
|
+
setup: api => {
|
|
160
165
|
api.onPrepare(async () => {
|
|
161
166
|
// Use the registered Hooks in the plugin
|
|
162
167
|
const hooks = api.getHooks();
|
|
163
168
|
await hooks.onAfterPrepare.call();
|
|
164
169
|
});
|
|
165
|
-
}
|
|
170
|
+
},
|
|
166
171
|
});
|
|
167
172
|
|
|
168
173
|
// Use Hook in other plugins
|
|
169
174
|
const myPlugin2 = () => ({
|
|
170
|
-
name:
|
|
171
|
-
setup:
|
|
175
|
+
name: 'my-plugin-2',
|
|
176
|
+
setup: api => {
|
|
172
177
|
api.onAfterPrepare(async () => {
|
|
173
178
|
// TODO
|
|
174
179
|
});
|
|
175
|
-
}
|
|
176
|
-
})
|
|
180
|
+
},
|
|
181
|
+
});
|
|
177
182
|
```
|
|
178
183
|
|
|
179
184
|
### Sync Hook (Synchronous Hook)
|
|
180
185
|
|
|
181
|
-
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
186
|
+
- **Characteristics:**
|
|
187
|
+
- Hook functions are executed synchronously.
|
|
188
|
+
- The return value of the previous Hook function is passed as the first argument to the next Hook function.
|
|
189
|
+
- Finally returns the return value of the last Hook function.
|
|
190
|
+
- **Use Cases:** Scenarios where data needs to be modified synchronously (such as modifying configurations, routes, etc.).
|
|
191
|
+
- **Creation Method:** Created using `createSyncHook`.
|
|
187
192
|
|
|
188
193
|
Example:
|
|
189
194
|
|
|
190
195
|
```ts
|
|
191
196
|
// Define Hooks
|
|
192
|
-
import { createSyncHook } from '@modern-js/plugin
|
|
197
|
+
import { createSyncHook } from '@modern-js/plugin';
|
|
193
198
|
|
|
194
|
-
type RouteObject = {
|
|
199
|
+
type RouteObject = {
|
|
200
|
+
/** TODO **/
|
|
201
|
+
};
|
|
195
202
|
const modifyRoutes = createSyncHook<(routes: RouteObject[]) => RouteObject[]>();
|
|
196
203
|
|
|
197
204
|
// Register Hooks in the plugin
|
|
198
205
|
const myPlugin = () => ({
|
|
199
|
-
name:
|
|
206
|
+
name: 'my-plugin',
|
|
200
207
|
registryHooks: {
|
|
201
208
|
modifyRoutes,
|
|
202
209
|
},
|
|
203
|
-
setup:
|
|
210
|
+
setup: api => {
|
|
204
211
|
api.onPrepare(async () => {
|
|
205
212
|
const routes = {};
|
|
206
213
|
// Use registered Hooks in the plugin
|
|
207
214
|
const hooks = api.getHooks();
|
|
208
215
|
const routesResult = hooks.modifyRoutes.call(routes);
|
|
209
216
|
});
|
|
210
|
-
}
|
|
217
|
+
},
|
|
211
218
|
});
|
|
212
219
|
|
|
213
220
|
// Other plugins use Hooks
|
|
214
221
|
const myPlugin2 = () => ({
|
|
215
|
-
name:
|
|
216
|
-
setup:
|
|
217
|
-
api.modifyRoutes(async
|
|
222
|
+
name: 'my-plugin',
|
|
223
|
+
setup: api => {
|
|
224
|
+
api.modifyRoutes(async routes => {
|
|
218
225
|
// Modify routes
|
|
219
226
|
return routes;
|
|
220
227
|
});
|
|
221
|
-
}
|
|
228
|
+
},
|
|
222
229
|
});
|
|
223
230
|
```
|
|
224
231
|
|
|
225
232
|
## Plugin Development Best Practices
|
|
226
233
|
|
|
227
|
-
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
231
|
-
-
|
|
232
|
-
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
234
|
+
- **Single Responsibility:** Each plugin should focus on implementing a specific, cohesive function. Avoid creating plugins with complex functionalities and unclear responsibilities.
|
|
235
|
+
- **Naming Conventions:** Plugin names should be clear, concise, and follow certain naming conventions (such as `plugin-xxx` or `@scope/plugin-xxx`).
|
|
236
|
+
- **Type Safety:** Make full use of TypeScript's type system to ensure the type safety of the plugin API and reduce runtime errors.
|
|
237
|
+
- **Comprehensive Documentation:** Write clear documentation for the plugin, including API descriptions, usage examples, configuration explanations, and change logs.
|
|
238
|
+
- **Thorough Testing:** Conduct unit tests and integration tests on the plugin to ensure its stability, reliability, and compatibility in various scenarios.
|
|
239
|
+
- **Minimize Side Effects:** Plugins should minimize modifications to the external environment (such as global variables, file systems, etc.) to maintain the plugin's independence and portability.
|
|
240
|
+
- **Error Handling:** Plugins should properly handle potential errors to prevent the entire application from crashing due to plugin exceptions.
|
|
241
|
+
- **Performance Optimization:** Pay attention to the performance impact of the plugin, avoid unnecessary calculations and resource consumption, especially in loops or frequently called Hooks.
|
|
242
|
+
- **Version Control:** Follow Semantic Versioning (SemVer) to ensure the backward compatibility of the plugin and facilitate user upgrades.
|
|
236
243
|
|
|
237
244
|
Following these best practices can help you develop high-quality, easy-to-maintain, and easy-to-use Modern.js plugins.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Plugin API
|
|
2
2
|
|
|
3
|
-
Modern.js's Runtime Plugins allow you to extend and modify the behavior of your application during its React code execution.
|
|
3
|
+
Modern.js's Runtime Plugins allow you to extend and modify the behavior of your application during its React code execution. With Runtime Plugins, you can easily perform initialization tasks, implement React Higher-Order Component (HOC) wrapping, and more.
|
|
4
4
|
|
|
5
5
|
:::info
|
|
6
6
|
|
|
@@ -13,18 +13,18 @@ Runtime plugins need to be configured via the [`plugins`](/configure/app/runtime
|
|
|
13
13
|
A typical Runtime Plugin looks like this:
|
|
14
14
|
|
|
15
15
|
```ts
|
|
16
|
-
import type {
|
|
16
|
+
import type { RuntimePlugin } from '@modern-js/runtime';
|
|
17
17
|
|
|
18
|
-
const myRuntimePlugin = ():
|
|
18
|
+
const myRuntimePlugin = (): RuntimePlugin => ({
|
|
19
19
|
name: 'my-runtime-plugin',
|
|
20
|
-
setup:
|
|
20
|
+
setup: api => {
|
|
21
21
|
// Use the api to register hooks
|
|
22
|
-
api.onBeforeRender(
|
|
22
|
+
api.onBeforeRender(context => {
|
|
23
23
|
console.log('Before rendering:', context);
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
api.wrapRoot(
|
|
27
|
-
return
|
|
26
|
+
api.wrapRoot(App => {
|
|
27
|
+
return props => (
|
|
28
28
|
<MyContextProvider>
|
|
29
29
|
<App {...props} />
|
|
30
30
|
</MyContextProvider>
|
|
@@ -34,18 +34,17 @@ const myRuntimePlugin = (): RuntimePluginFuture => ({
|
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
export default myRuntimePlugin;
|
|
37
|
-
|
|
38
37
|
```
|
|
39
38
|
|
|
40
|
-
-
|
|
41
|
-
-
|
|
39
|
+
- `name`: A unique identifier for the plugin.
|
|
40
|
+
- `setup`: The main logic of the plugin, which receives an `api` object as a parameter. This `api` object is used to register hooks.
|
|
42
41
|
|
|
43
42
|
## API Overview
|
|
44
43
|
|
|
45
44
|
The Runtime Plugin API is primarily divided into the following categories:
|
|
46
45
|
|
|
47
|
-
-
|
|
48
|
-
-
|
|
46
|
+
- **Information Retrieval**: Getting runtime configuration and hook functions.
|
|
47
|
+
- **Lifecycle Hooks**: Executing custom logic at different stages of the application's rendering process.
|
|
49
48
|
|
|
50
49
|
### Information Retrieval
|
|
51
50
|
|
|
@@ -53,7 +52,7 @@ The Runtime Plugin API is primarily divided into the following categories:
|
|
|
53
52
|
|
|
54
53
|
Gets the runtime configuration defined by the user in the `modern.runtime.ts` file.
|
|
55
54
|
|
|
56
|
-
-
|
|
55
|
+
- **Usage**:
|
|
57
56
|
|
|
58
57
|
```ts
|
|
59
58
|
const config = api.getRuntimeConfig();
|
|
@@ -62,23 +61,25 @@ console.log(config.myCustomSetting);
|
|
|
62
61
|
|
|
63
62
|
:::warning
|
|
64
63
|
|
|
65
|
-
This method returns a
|
|
64
|
+
This method returns a _copy_ of the user's configuration. Modifying the returned value will not affect the original configuration.
|
|
66
65
|
:::
|
|
67
66
|
|
|
68
67
|
#### `api.getHooks`
|
|
69
68
|
|
|
70
69
|
Gets the hook functions that can be triggered manually.
|
|
71
70
|
|
|
72
|
-
-
|
|
71
|
+
- **Type:**
|
|
73
72
|
|
|
74
73
|
```ts
|
|
75
74
|
() => {
|
|
76
|
-
onBeforeRender: {
|
|
75
|
+
onBeforeRender: {
|
|
76
|
+
call: (context: any) => Promise<void>;
|
|
77
|
+
}
|
|
77
78
|
// Other hooks...
|
|
78
79
|
};
|
|
79
80
|
```
|
|
80
81
|
|
|
81
|
-
-
|
|
82
|
+
- **Usage:**
|
|
82
83
|
|
|
83
84
|
```ts
|
|
84
85
|
const hooks = api.getHooks();
|
|
@@ -89,63 +90,65 @@ await hooks.onBeforeRender.call(myContext);
|
|
|
89
90
|
|
|
90
91
|
#### `api.onBeforeRender`
|
|
91
92
|
|
|
92
|
-
Executes before the application renders (including both server-side rendering and client-side rendering).
|
|
93
|
+
Executes before the application renders (including both server-side rendering and client-side rendering). You can use this hook to perform data prefetching, modify the rendering context, etc.
|
|
93
94
|
|
|
94
|
-
-
|
|
95
|
+
- **Type:**
|
|
95
96
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
```ts
|
|
98
|
+
type OnBeforeRenderFn<RuntimeContext> = (
|
|
99
|
+
context: RuntimeContext,
|
|
100
|
+
) => Promise<void> | void;
|
|
101
|
+
```
|
|
100
102
|
|
|
101
|
-
|
|
103
|
+
`RuntimeContext` contains contextual information about the current request, such as the request object, response object, etc.
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
- **Usage:**
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
api.onBeforeRender(async context => {
|
|
109
|
+
const data = await fetchData(context.req);
|
|
110
|
+
context.data = data; // Add the data to the context
|
|
111
|
+
});
|
|
112
|
+
```
|
|
109
113
|
|
|
110
114
|
:::warning
|
|
111
115
|
|
|
112
|
-
- This hook executes before
|
|
116
|
+
- This hook executes before **every** render, so avoid performing long-running operations.
|
|
113
117
|
- You can modify the `context` object in this hook, and the modified `context` will be passed to subsequent rendering processes.
|
|
114
118
|
|
|
115
119
|
:::
|
|
116
120
|
|
|
117
121
|
#### `api.wrapRoot`
|
|
118
122
|
|
|
119
|
-
Allows you to wrap the application's root component with a custom React component.
|
|
123
|
+
Allows you to wrap the application's root component with a custom React component. This is commonly used to add global Providers, layout components, etc.
|
|
120
124
|
|
|
121
|
-
-
|
|
125
|
+
- **Type:**
|
|
122
126
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
) => React.ComponentType<any>;
|
|
127
|
-
```
|
|
127
|
+
```ts
|
|
128
|
+
type WrapRootFn = (App: React.ComponentType<any>) => React.ComponentType<any>;
|
|
129
|
+
```
|
|
128
130
|
|
|
129
|
-
-
|
|
131
|
+
- **Usage:**
|
|
130
132
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
```ts
|
|
134
|
+
api.wrapRoot((App) => {
|
|
135
|
+
const AppWrapper = (props) => {
|
|
136
|
+
return (
|
|
137
|
+
<MyGlobalProvider>
|
|
138
|
+
<Layout>
|
|
139
|
+
<App {...props} /> {/* Make sure to pass props */}
|
|
140
|
+
</Layout>
|
|
141
|
+
</MyGlobalProvider>
|
|
142
|
+
);
|
|
143
|
+
};
|
|
144
|
+
return AppWrapper;
|
|
145
|
+
});
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
:::warning
|
|
146
149
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
150
|
+
- **It is crucial to pass the `props` to the original `App` component**, otherwise, the application may not function correctly.
|
|
151
|
+
- The component returned by `wrapRoot` is recreated on every render, so avoid defining complex logic or state within it.
|
|
149
152
|
|
|
150
153
|
:::
|
|
151
154
|
|
|
@@ -156,12 +159,12 @@ Allows you to wrap the application's root component with a custom React componen
|
|
|
156
159
|
You can combine multiple hooks to implement more complex functionality. For example, you can use `onBeforeRender` to fetch data and then use `wrapRoot` to pass the data to the entire application via Context:
|
|
157
160
|
|
|
158
161
|
```ts
|
|
159
|
-
import {
|
|
162
|
+
import { RuntimePlugin, RuntimeContext } from '@modern-js/runtime';
|
|
160
163
|
import { useContext, createContext } from 'react';
|
|
161
164
|
|
|
162
165
|
export const ThemeContext = createContext<{ theme: string } | null>(null);
|
|
163
166
|
|
|
164
|
-
export const themePlugin = ():
|
|
167
|
+
export const themePlugin = (): RuntimePlugin => {
|
|
165
168
|
return {
|
|
166
169
|
name: 'theme-plugin',
|
|
167
170
|
setup: api => {
|
|
@@ -176,7 +179,7 @@ export const themePlugin = (): RuntimePluginFuture => {
|
|
|
176
179
|
|
|
177
180
|
api.wrapRoot(App => {
|
|
178
181
|
return props => {
|
|
179
|
-
const context = useContext(
|
|
182
|
+
const context = useContext(RuntimeContext);
|
|
180
183
|
return (
|
|
181
184
|
<ThemeContext.Provider value={context.data}>
|
|
182
185
|
<App {...props} />
|