@modern-js/main-doc 2.69.7 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/en/{_meta.json → _nav.json} +5 -1
- package/docs/en/apis/app/commands.mdx +8 -33
- 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 +19 -17
- package/docs/en/components/build-output.mdx +45 -0
- package/docs/en/components/bundler.mdx +1 -1
- 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 +42 -8
- package/docs/en/components/enable-ssg.mdx +49 -0
- package/docs/en/components/entry-scan-logic.mdx +7 -0
- package/docs/en/components/esbuild.mdx +2 -2
- package/docs/en/components/extend-bff-function.mdx +2 -4
- package/docs/en/components/hono.mdx +119 -0
- package/docs/en/components/init-app.mdx +40 -17
- package/docs/en/components/international/custom-instance-code.mdx +16 -0
- package/docs/en/components/international/init-options-desc.mdx +1 -0
- package/docs/en/components/international/install-command.mdx +23 -0
- package/docs/en/components/international/instance-code.mdx +26 -0
- package/docs/en/components/international/introduce.mdx +2 -0
- package/docs/en/components/module-federation.mdx +4 -4
- 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-config-deploy.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/builder-plugins.mdx +1 -2
- package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
- package/docs/en/configure/app/dev/server.mdx +211 -0
- package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
- package/docs/en/configure/app/experiments/source-build.mdx +0 -1
- package/docs/en/configure/app/html/app-icon.mdx +1 -23
- package/docs/en/configure/app/output/assets-retry.mdx +1 -1
- package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
- package/docs/en/configure/app/output/filename.mdx +2 -4
- 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/output/temp-dir.mdx +3 -3
- package/docs/en/configure/app/performance/build-cache.mdx +1 -5
- package/docs/en/configure/app/performance/profile.mdx +1 -1
- package/docs/en/configure/app/plugins.mdx +1 -3
- 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/runtime/router.mdx +0 -4
- package/docs/en/configure/app/security/check-syntax.mdx +1 -1
- package/docs/en/configure/app/security/sri.mdx +0 -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/alias.mdx +1 -1
- package/docs/en/configure/app/source/decorators.mdx +4 -2
- package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/en/configure/app/source/entries.mdx +0 -2
- package/docs/en/configure/app/source/include.mdx +2 -14
- 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 +22 -256
- 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 +5 -27
- package/docs/en/guides/_meta.json +5 -1
- package/docs/en/guides/advanced-features/_meta.json +6 -0
- package/docs/en/guides/advanced-features/bff/_meta.json +9 -1
- package/docs/en/guides/advanced-features/bff/cross-project.mdx +2 -8
- package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -15
- package/docs/en/guides/advanced-features/bff/function.mdx +6 -10
- package/docs/en/guides/advanced-features/bff/operators.mdx +628 -0
- package/docs/en/guides/advanced-features/bff/sdk.mdx +20 -12
- package/docs/en/guides/advanced-features/bff/upload.mdx +3 -1
- 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 +428 -0
- package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
- package/docs/en/guides/advanced-features/international/quick-start.mdx +126 -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 +8 -22
- package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
- package/docs/en/guides/advanced-features/rspack-start.mdx +3 -23
- package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +121 -36
- 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 +65 -77
- package/docs/en/guides/basic-features/data/data-fetch.mdx +19 -18
- 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 +6 -17
- 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 +399 -0
- package/docs/en/guides/basic-features/render/ssg.mdx +26 -67
- package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -10
- 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/svg-assets.mdx +0 -4
- package/docs/en/guides/basic-features/static-assets.mdx +2 -2
- package/docs/en/guides/concept/builder.mdx +27 -12
- 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 +4 -71
- package/docs/en/guides/get-started/tech-stack.mdx +7 -27
- 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/guides/upgrade/_meta.json +1 -0
- package/docs/en/guides/upgrade/config.mdx +936 -0
- package/docs/en/guides/upgrade/entry.mdx +463 -0
- package/docs/en/guides/upgrade/other.mdx +83 -0
- package/docs/en/guides/upgrade/overview.mdx +33 -0
- package/docs/en/guides/upgrade/tailwindcss.mdx +130 -0
- package/docs/en/guides/upgrade/web-server.mdx +91 -0
- package/docs/en/plugin/_meta.json +5 -0
- package/docs/en/plugin/cli-plugins/_meta.json +1 -1
- package/docs/en/plugin/cli-plugins/api.mdx +17 -68
- package/docs/en/plugin/cli-plugins/life-cycle.mdx +0 -4
- package/docs/en/plugin/introduction.mdx +44 -44
- 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 +69 -62
- package/docs/en/plugin/runtime-plugins/_meta.json +1 -1
- package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
- package/docs/en/plugin/server-plugins/_meta.json +1 -0
- package/docs/en/plugin/server-plugins/api.mdx +210 -1
- package/docs/en/plugin/server-plugins/life-cycle.mdx +41 -1
- 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 +8 -33
- 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-operator-code.mdx +5 -0
- package/docs/zh/components/bff-upload.mdx +8 -7
- package/docs/zh/components/build-output.mdx +45 -0
- package/docs/zh/components/bundler.mdx +1 -1
- 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 +41 -8
- package/docs/zh/components/enable-ssg.mdx +49 -0
- package/docs/zh/components/entry-scan-logic.mdx +7 -0
- package/docs/zh/components/esbuild.mdx +2 -2
- package/docs/zh/components/extend-bff-function.mdx +2 -4
- package/docs/zh/components/hono.mdx +119 -0
- package/docs/zh/components/init-app.mdx +40 -18
- package/docs/zh/components/international/custom-instance-code.mdx +16 -0
- package/docs/zh/components/international/init-options-desc.mdx +1 -0
- package/docs/zh/components/international/install-command.mdx +23 -0
- package/docs/zh/components/international/instance-code.mdx +26 -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/components/upgrade-config-deploy.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/builder-plugins.mdx +1 -2
- package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
- package/docs/zh/configure/app/dev/server.mdx +211 -0
- package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
- package/docs/zh/configure/app/experiments/source-build.mdx +0 -1
- package/docs/zh/configure/app/html/app-icon.mdx +1 -23
- package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
- package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
- package/docs/zh/configure/app/output/filename.mdx +2 -4
- 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/output/temp-dir.mdx +3 -3
- package/docs/zh/configure/app/performance/build-cache.mdx +1 -5
- package/docs/zh/configure/app/performance/profile.mdx +1 -1
- package/docs/zh/configure/app/plugins.mdx +1 -2
- 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/runtime/router.mdx +0 -4
- package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
- package/docs/zh/configure/app/security/sri.mdx +0 -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/alias.mdx +1 -1
- package/docs/zh/configure/app/source/decorators.mdx +4 -4
- package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/zh/configure/app/source/entries.mdx +0 -2
- package/docs/zh/configure/app/source/include.mdx +2 -16
- 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 +6 -28
- 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/_meta.json +9 -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 +2 -16
- package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
- package/docs/zh/guides/advanced-features/bff/operators.mdx +628 -0
- package/docs/zh/guides/advanced-features/bff/sdk.mdx +23 -16
- package/docs/zh/guides/advanced-features/bff/upload.mdx +3 -1
- 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 +432 -0
- package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
- package/docs/zh/guides/advanced-features/international/quick-start.mdx +126 -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 +8 -22
- package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
- package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
- package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +120 -37
- 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 +55 -59
- package/docs/zh/guides/basic-features/data/data-fetch.mdx +14 -16
- 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 +4 -15
- 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 +399 -0
- package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
- package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -9
- 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/svg-assets.mdx +0 -4
- 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 +26 -11
- 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 -28
- 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 -31
- package/docs/zh/guides/troubleshooting/builder.mdx +4 -85
- 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 +940 -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/_meta.json +5 -0
- package/docs/zh/plugin/cli-plugins/_meta.json +1 -1
- package/docs/zh/plugin/cli-plugins/api.mdx +19 -70
- package/docs/zh/plugin/cli-plugins/life-cycle.mdx +0 -4
- package/docs/zh/plugin/introduction.mdx +40 -40
- 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 +43 -51
- package/docs/zh/plugin/runtime-plugins/_meta.json +1 -1
- package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
- package/docs/zh/plugin/server-plugins/_meta.json +1 -0
- package/docs/zh/plugin/server-plugins/api.mdx +210 -1
- package/docs/zh/plugin/server-plugins/life-cycle.mdx +41 -1
- 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/FrameworkCode/index.tsx +605 -0
- 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/bundle-analyze.mdx +0 -24
- 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/babel.mdx +0 -225
- 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 -253
- package/docs/en/configure/app/tools/webpack.mdx +0 -309
- 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/cli-plugins/migration.mdx +0 -98
- 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/plugin/runtime-plugins/migration.mdx +0 -101
- 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/default-mwa-generate.mdx +0 -4
- 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/bundle-analyze.mdx +0 -24
- 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/babel.mdx +0 -224
- 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 -257
- package/docs/zh/configure/app/tools/webpack.mdx +0 -309
- 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/cli-plugins/migration.mdx +0 -98
- 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/plugin/runtime-plugins/migration.mdx +0 -101
- 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/en/components/{router-legacy-tip.mdx → international/platform-support.mdx} +0 -0
- /package/docs/{zh/components/reduck-migration.mdx → en/components/new-entry-tooltip.mdx} +0 -0
- /package/docs/{zh/components/router-legacy-tip.mdx → en/components/upgrade-browserslist.mdx} +0 -0
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Hook
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Hook
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
The Hook API has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend Modern.js built-in Web Server, all page requests are handled by these hooks.
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
import { AfterMatchHook, AfterRenderHook } from '@modern-js/runtime/server';
|
|
19
|
-
|
|
20
|
-
export const afterMatch: AfterMatchHook = (context, next) => {};
|
|
21
|
-
export const afterRender: AfterRenderHook = (context, next) => {};
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
:::info
|
|
25
|
-
Before using this API, please execute `pnpm run new` to create a new "Custom Web Server" source code directory.
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
pnpm run new
|
|
29
|
-
? Please select the operation you want: Create Elements
|
|
30
|
-
? Please select the type of element to create: New "Custom Web Server" source code directory
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
:::
|
|
34
|
-
|
|
35
|
-
## Function Signature
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
type HookContext = {
|
|
39
|
-
response: {
|
|
40
|
-
set: (key: string, value: string) => void;
|
|
41
|
-
status: (code: number) => void;
|
|
42
|
-
getStatus: () => number;
|
|
43
|
-
cookies: {
|
|
44
|
-
set: (key: string, value: string, options?: any) => void;
|
|
45
|
-
clear: () => void;
|
|
46
|
-
};
|
|
47
|
-
raw: (
|
|
48
|
-
body: string,
|
|
49
|
-
{ status, headers }: { status: number; headers: Record<string, any> },
|
|
50
|
-
) => void;
|
|
51
|
-
};
|
|
52
|
-
request: {
|
|
53
|
-
host: string;
|
|
54
|
-
pathname: string;
|
|
55
|
-
query: Record<string, any>;
|
|
56
|
-
cookie: string;
|
|
57
|
-
cookies: {
|
|
58
|
-
get: (key: string) => string;
|
|
59
|
-
};
|
|
60
|
-
headers: IncomingHttpHeaders;
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
function Hook(context: HookContext, next: NextFunction): Promsie<void> | void;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
different Hooks additionally provide different contexts. Currently Modern.js support `AfterMatch` and `AfterRender`.
|
|
68
|
-
|
|
69
|
-
```ts
|
|
70
|
-
type AfterMatchContext = HookContext & {
|
|
71
|
-
router: {
|
|
72
|
-
redirect: (url: string, status: number) => void;
|
|
73
|
-
rewrite: (entry: string) => void;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
type AfterRenderContext = {
|
|
78
|
-
template: {
|
|
79
|
-
get: () => string;
|
|
80
|
-
set: (html: string) => void;
|
|
81
|
-
prependHead: (fragment: string) => void;
|
|
82
|
-
appendHead: (fragment: string) => void;
|
|
83
|
-
prependBody: (fragment: string) => void;
|
|
84
|
-
appendBody: (fragment: string) => void;
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Input
|
|
90
|
-
|
|
91
|
-
- `context`: Hook context.
|
|
92
|
-
- `response`: provides a series of methods to process the response.
|
|
93
|
-
- `request`: provides a series of methods to get request info.
|
|
94
|
-
- `router`: provides methods on routing.
|
|
95
|
-
- `template`: provides methods on content.
|
|
96
|
-
- `next`: call next listener (not affect the server process, only current hook).
|
|
97
|
-
|
|
98
|
-
## Example
|
|
99
|
-
|
|
100
|
-
### Redirect
|
|
101
|
-
|
|
102
|
-
Redirect to pages outside the site, for example to login page:
|
|
103
|
-
|
|
104
|
-
```ts
|
|
105
|
-
import type { AfterMatch } from '@modern-js/runtime/server';
|
|
106
|
-
|
|
107
|
-
export const afterMatch: AfterMatch = async (ctx, next) => {
|
|
108
|
-
ctx.router.redirect('https://website.com/login', 302);
|
|
109
|
-
};
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Rewrite
|
|
113
|
-
|
|
114
|
-
Rewrite to pages of the current site, for example, the same route returns pages that are adapted to different UA:
|
|
115
|
-
|
|
116
|
-
```ts
|
|
117
|
-
import type { AfterMatch } from '@modern-js/runtime/server';
|
|
118
|
-
|
|
119
|
-
export const afterMatch: AfterMatch = async (ctx, next) => {
|
|
120
|
-
ctx.router.rewrite('mobile');
|
|
121
|
-
};
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### HTML Inject
|
|
125
|
-
|
|
126
|
-
Inject some HTML content to the page, such as scripts, page skeletons, etc.:
|
|
127
|
-
|
|
128
|
-
```ts
|
|
129
|
-
import type { AfterRender } from '@modern-js/runtime/server';
|
|
130
|
-
|
|
131
|
-
export const afterRender: AfterRenderHook = (context, next) => {
|
|
132
|
-
ctx.template.prependBody('<div>Footer</div>');
|
|
133
|
-
};
|
|
134
|
-
```
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Middleware
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Middleware
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
Middleware has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend the built-in Web Server of Modern.js, unlike [Hook](/apis/app/runtime/web-server/hook), Middleware can directly operate Node's origin request and response, and can be extended using the framework plugin.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
|
|
18
|
-
```ts
|
|
19
|
-
import { Middleware } from '@modern-js/runtime/server';
|
|
20
|
-
|
|
21
|
-
export const middleware: Middleware = async (context, next) => {};
|
|
22
|
-
export const middleware: Middleware[] = [
|
|
23
|
-
async (context, next) => {},
|
|
24
|
-
async (context, next) => {},
|
|
25
|
-
];
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
:::info
|
|
29
|
-
Before using this API, please execute `pnpm run new` to create a new "Custom Web Server" source code directory.
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pnpm run new
|
|
33
|
-
? Please select the operation you want: Create Element
|
|
34
|
-
? Please select the type of element to create: New "Custom Web Server" source code directory
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
:::
|
|
38
|
-
|
|
39
|
-
## Function Signature
|
|
40
|
-
|
|
41
|
-
```ts
|
|
42
|
-
type Middleware = (
|
|
43
|
-
context: MiddlewareContext,
|
|
44
|
-
next: NextFunction,
|
|
45
|
-
) => Promise<void> | void;
|
|
46
|
-
|
|
47
|
-
type MiddlewareContext = {
|
|
48
|
-
response: {
|
|
49
|
-
set: (key: string, value: string) => void;
|
|
50
|
-
status: (code: number) => void;
|
|
51
|
-
getStatus: () => number;
|
|
52
|
-
cookies: {
|
|
53
|
-
set: (key: string, value: string, options?: any) => void;
|
|
54
|
-
clear: () => void;
|
|
55
|
-
};
|
|
56
|
-
raw: (
|
|
57
|
-
body: string,
|
|
58
|
-
{ status, headers }: { status: number; headers: Record<string, any> },
|
|
59
|
-
) => void;
|
|
60
|
-
locals: Record<string, any>;
|
|
61
|
-
};
|
|
62
|
-
request: {
|
|
63
|
-
host: string;
|
|
64
|
-
pathname: string;
|
|
65
|
-
query: Record<string, any>;
|
|
66
|
-
cookie: string;
|
|
67
|
-
cookies: {
|
|
68
|
-
get: (key: string) => string;
|
|
69
|
-
};
|
|
70
|
-
headers: IncomingHttpHeaders;
|
|
71
|
-
};
|
|
72
|
-
source: {
|
|
73
|
-
req: IncomingMessage;
|
|
74
|
-
res: ServerResponse;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Input
|
|
80
|
-
|
|
81
|
-
- `context`: Middleware context.
|
|
82
|
-
- `response`: provides a series of methods to process the response.
|
|
83
|
-
- `request`: provides a series of methods to get request info.
|
|
84
|
-
- `source`: provides Node.js native `req` and `res` object.
|
|
85
|
-
- `next`: call next listener (not affect the server process, only current hook).
|
|
86
|
-
|
|
87
|
-
:::warning
|
|
88
|
-
The execution of the `next` function does not affect built-in processes, only controls whether the next middleware executes. Rendering processes are interrupted only when the response is written.
|
|
89
|
-
:::
|
|
90
|
-
|
|
91
|
-
## Example
|
|
92
|
-
|
|
93
|
-
### Tracking
|
|
94
|
-
|
|
95
|
-
```ts
|
|
96
|
-
export const Middleware = () => async (ctx, next) => {
|
|
97
|
-
const start = Date.now();
|
|
98
|
-
ctx.source.res.once('finish', () => {
|
|
99
|
-
console.log(Date.now() - start);
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Inject Tools & Data
|
|
105
|
-
|
|
106
|
-
Modern.js provides `res.locals` to store local variables for the current request.
|
|
107
|
-
|
|
108
|
-
```ts
|
|
109
|
-
export const Middleware = () => async (ctx, next) => {
|
|
110
|
-
ctx.response.locals.id = 'Modern.js';
|
|
111
|
-
ctx.response.locals.rpc = createRpcInstance();
|
|
112
|
-
};
|
|
113
|
-
```
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Unstable Middleware
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Unstable Middleware
|
|
6
|
-
|
|
7
|
-
:::warning
|
|
8
|
-
|
|
9
|
-
UnstableMiddleware has been deprecated. Please use the [new Custom Web Server](/guides/advanced-features/web-server) to handle page requests.
|
|
10
|
-
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
Used to extend the built-in Web Server in Modern.js.
|
|
14
|
-
UnstableMiddleware will replace [Middleware](/apis/app/runtime/web-server/middleware) in the future.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Usage
|
|
18
|
-
|
|
19
|
-
```ts title="server/index.ts"
|
|
20
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
21
|
-
|
|
22
|
-
export const unstableMiddleware: UnstableMiddleware[] = [];
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Types
|
|
26
|
-
|
|
27
|
-
**UnstableMiddleware**
|
|
28
|
-
|
|
29
|
-
```ts
|
|
30
|
-
type UnstableMiddleware<
|
|
31
|
-
V extends Record<string, unknown> = Record<string, unknown>,
|
|
32
|
-
> = (
|
|
33
|
-
c: UnstableMiddlewareContext<V>,
|
|
34
|
-
next: UnstableNext,
|
|
35
|
-
) => Promise<void | Response>;
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**UnstableMiddlewareContext**
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
type Body = ReadableStream | ArrayBuffer | string | null;
|
|
42
|
-
|
|
43
|
-
type UnstableMiddlewareContext<
|
|
44
|
-
V extends Record<string, unknown> = Record<string, unknown>,
|
|
45
|
-
> = {
|
|
46
|
-
request: Request;
|
|
47
|
-
response: Response;
|
|
48
|
-
get: Get<V>;
|
|
49
|
-
set: Set<V>;
|
|
50
|
-
header: (name: string, value: string, options?: { append?: boolean }) => void;
|
|
51
|
-
status: (code: number) => void;
|
|
52
|
-
redirect: (location: string, status?: number) => Response;
|
|
53
|
-
body: (data: Body, init?: ResponseInit) => Response;
|
|
54
|
-
html: (
|
|
55
|
-
data: string | Promise<string>,
|
|
56
|
-
init?: ResponseInit,
|
|
57
|
-
) => Response | Promise<Response>;
|
|
58
|
-
};
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**UnstableNext**
|
|
62
|
-
|
|
63
|
-
```ts
|
|
64
|
-
type UnstableNext = () => Promise<void>;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Examples
|
|
68
|
-
|
|
69
|
-
### Web Server Timing
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
73
|
-
|
|
74
|
-
const time: UnstableMiddleware = async (c, next) => {
|
|
75
|
-
const start = Date.now();
|
|
76
|
-
|
|
77
|
-
await next();
|
|
78
|
-
|
|
79
|
-
const end = Date.now();
|
|
80
|
-
|
|
81
|
-
console.log(`${end - start}`);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export const unstableMiddleware: UnstableMiddleware[] = [time];
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Injecting Server Data for DataLoader Consumption
|
|
88
|
-
|
|
89
|
-
```ts title="shared/index.ts"
|
|
90
|
-
export type Vars = {
|
|
91
|
-
message: string;
|
|
92
|
-
};
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
```ts title="server/index.ts"
|
|
96
|
-
import {
|
|
97
|
-
UnstableMiddleware,
|
|
98
|
-
UnstableMiddlewareContext,
|
|
99
|
-
} from '@modern-js/runtime/server';
|
|
100
|
-
import type { Vars } from '../shared/index';
|
|
101
|
-
|
|
102
|
-
const setPayload: UnstableMiddlewaree<Vars> = async (
|
|
103
|
-
c: UnstableMiddlewareContext<Vars>,
|
|
104
|
-
next,
|
|
105
|
-
) => {
|
|
106
|
-
c.set('message', 'facker');
|
|
107
|
-
|
|
108
|
-
await next();
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export const unstableMiddleware: UnstableMiddleware<Vars>[] = [setPayload];
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
```ts title="src/routes/page.data.ts"
|
|
115
|
-
import type { Payload } from '../../shared/index';
|
|
116
|
-
import { LoaderFunctionArgs } from '@modern-js/runtime/router';
|
|
117
|
-
|
|
118
|
-
export const loader = async ({ context }: LoaderFunctionArgs<Vars>) => {
|
|
119
|
-
const message = context?.get('message');
|
|
120
|
-
|
|
121
|
-
// ...
|
|
122
|
-
};
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Redirect
|
|
126
|
-
|
|
127
|
-
```ts
|
|
128
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
129
|
-
|
|
130
|
-
const auth: UnstableMiddleware = async (c, next) => {
|
|
131
|
-
const user = getUser(c.request);
|
|
132
|
-
|
|
133
|
-
if (!user) {
|
|
134
|
-
return c.redirect('/login');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
await next();
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
export const unstableMiddleware: UnstableMiddleware[] = [auth];
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Modify Response
|
|
144
|
-
|
|
145
|
-
```ts
|
|
146
|
-
import { UnstableMiddleware } from '@modern-js/runtime/server';
|
|
147
|
-
|
|
148
|
-
const modifier: UnstableMiddleware = async (c, next) => {
|
|
149
|
-
await next();
|
|
150
|
-
|
|
151
|
-
const { response } = c;
|
|
152
|
-
|
|
153
|
-
const text = await response.text();
|
|
154
|
-
|
|
155
|
-
const newText = text.replace('<html>', `<html lang="${language}">`);
|
|
156
|
-
|
|
157
|
-
const newheaders = response.headers;
|
|
158
|
-
newheaders.set('x-custom-value', 'modern');
|
|
159
|
-
|
|
160
|
-
c.response = c.body(newText, {
|
|
161
|
-
status: response.status,
|
|
162
|
-
headers: newheaders,
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
export const unstableMiddleware: UnstableMiddleware[] = [modifier];
|
|
167
|
-
```
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Path rewriting can also be performed here, such as proxying the request sent to `localhost:8080/api/topics` to `https://cnodejs.org/api/v1/topics`.
|
|
2
|
-
|
|
3
|
-
```js title="modern.server-runtime.config.js"
|
|
4
|
-
import { defineConfig } from '@modern-js/app-tools/server';
|
|
5
|
-
export default defineConfig({
|
|
6
|
-
bff: {
|
|
7
|
-
proxy: {
|
|
8
|
-
'/api': {
|
|
9
|
-
target: 'https://cnodejs.org',
|
|
10
|
-
pathRewrite: { '/api/topics': '/api/v1/topics' },
|
|
11
|
-
changeOrigin: true,
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
BFF Proxy uses the powerful [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware). For more advanced usage, please refer to its [documentation](https://github.com/chimurai/http-proxy-middleware#options).
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
Refers to the build layer of Modern.js. The goal of Builder is to provide Modern.js users with out-of-the-box build capabilities and support seamless switching between webpack and Rspack.
|
|
2
|
-
|
|
3
|
-
The previous version of Modern.js `MAJOR_VERSION.46.0` used `@modern-js/builder`, which was upgraded to [Rsbuild](https://rsbuild.rs/) starting from `MAJOR_VERSION.46.0`.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
1. run `@modern-js/create` command:
|
|
2
|
-
|
|
3
|
-
```bash
|
|
4
|
-
npx @modern-js/create@latest myapi
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
2. interactive Q & A interface to initialize the project based on the results, with initialization performed according to the default settings:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
? Please select the programming language: TS
|
|
11
|
-
? Please select the package manager: pnpm
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
3. Execute the `new` command,enable BFF:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
? Please select the operation you want to perform Enable optional features
|
|
18
|
-
? Please select the feature to enable Enable "BFF"
|
|
19
|
-
? Please select BFF type Framework mode
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
4. Execute【[Existing BFF-enabled Projects](/en/guides/advanced-features/bff/cross-project.html#existing-bff-enabled-projects)】to turn on the cross-project call switch.
|
|
24
|
-
|
|
25
|
-
**Note:** When a project serves solely as a BFF producer, its runtime does not depend on the `/src` source directory. Removing the `/src` directory can help optimize the project's build efficiency.
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
```js title="src/App.tsx"
|
|
2
|
-
import { useModuleApps } from '@modern-js/plugin-garfish/runtime';
|
|
3
|
-
|
|
4
|
-
import { RouterProvider, Route, createBrowserRouter, createRoutesFromElements, BrowserRouter, Link, Outlet } from '@modern-js/runtime/router';
|
|
5
|
-
|
|
6
|
-
const AppLayout = () => (
|
|
7
|
-
<>
|
|
8
|
-
<div><Link to={'/table'}>Loading conventional routed sub-applications</Link></div>
|
|
9
|
-
<div><Link to={'/dashboard'}>Loading Self-Controlled Routing Sub-Applications</Link></div>
|
|
10
|
-
<div><Link to={'/'}>Uninstall a sub-application</Link></div>
|
|
11
|
-
<Outlet />
|
|
12
|
-
</>
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
export default () => {
|
|
16
|
-
const { apps, MApp, Table, Dashboard } = useModuleApps();
|
|
17
|
-
|
|
18
|
-
// If you are not using the MApp component, you need to use createBrowserRouter to create the route.
|
|
19
|
-
const router = createBrowserRouter(
|
|
20
|
-
createRoutesFromElements(
|
|
21
|
-
<Route path="/" element={<AppLayout />}>
|
|
22
|
-
<Route key={'table'} path={'table/*'} element={<Table />} />
|
|
23
|
-
<Route key={'dashboard'} path={'dashboard/*'} element={<Dashboard />} />
|
|
24
|
-
</Route>
|
|
25
|
-
)
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
// Approach 1: Use MApp to automatically load sub-applications based on the configured activeWhen parameter (this project is configured in modern.config.ts)
|
|
30
|
-
// <BrowserRouter>
|
|
31
|
-
// <MApp />
|
|
32
|
-
// </BrowserRouter>
|
|
33
|
-
|
|
34
|
-
// Approach 2: Manually write Route components to load sub-applications, which is convenient for scenarios that require authentication and other pre-requisite operations
|
|
35
|
-
<>
|
|
36
|
-
<RouterProvider router={router} />
|
|
37
|
-
</>
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
```
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
```ts title="modern.config.ts"
|
|
2
|
-
import { appTools, defineConfig } from '@modern-js/app-tools';
|
|
3
|
-
import { garfishPlugin } from '@modern-js/plugin-garfish';
|
|
4
|
-
|
|
5
|
-
export default defineConfig({
|
|
6
|
-
runtime: {
|
|
7
|
-
router: true,
|
|
8
|
-
},
|
|
9
|
-
plugins: [appTools(), garfishPlugin()],
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
```ts title="src/modern.runtime.ts"
|
|
15
|
-
import { defineRuntimeConfig } from '@modern-js/runtime';
|
|
16
|
-
|
|
17
|
-
export default defineRuntimeConfig({
|
|
18
|
-
masterApp: {
|
|
19
|
-
apps: [{
|
|
20
|
-
name: 'Table',
|
|
21
|
-
entry: 'http://localhost:8081',
|
|
22
|
-
// activeWhen: '/table'
|
|
23
|
-
}, {
|
|
24
|
-
name: 'Dashboard',
|
|
25
|
-
entry: 'http://localhost:8082'
|
|
26
|
-
// activeWhen: '/dashboard'
|
|
27
|
-
}]
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
```
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
First, you need to execute `pnpm run new` to enable the SWC compile:
|
|
2
|
-
|
|
3
|
-
```bash
|
|
4
|
-
? Please select the operation you want: Enable features
|
|
5
|
-
? Please select the feature name: Enable SWC Compile
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
After the installation, please register the SWC plugin in the `modern.config.ts` file, then the SWC compilation and compression will be enabled.
|
|
9
|
-
|
|
10
|
-
```ts title="modern.config.ts"
|
|
11
|
-
import { appTools, defineConfig } from '@modern-js/app-tools';
|
|
12
|
-
import { swcPlugin } from '@modern-js/plugin-swc';
|
|
13
|
-
|
|
14
|
-
export default defineConfig({
|
|
15
|
-
plugins: [appTools(), swcPlugin()],
|
|
16
|
-
});
|
|
17
|
-
```
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
- **Type:** `string | Object`
|
|
2
|
-
- **Default:** `null`
|
|
3
|
-
|
|
4
|
-
This option is used to configure a global proxy based on [whistle](https://wproxy.org/whistle/) in the development environment, which can be used to view and modify HTTP/HTTPS requests, responses, and can also be used as a proxy server.
|
|
5
|
-
|
|
6
|
-
### Register Plugin
|
|
7
|
-
|
|
8
|
-
Before using this option, you need to install and register the `@modern-js/plugin-proxy` plugin:
|
|
9
|
-
|
|
10
|
-
import { PackageManagerTabs } from '@theme';
|
|
11
|
-
|
|
12
|
-
<PackageManagerTabs command="add @modern-js/plugin-proxy -D" />
|
|
13
|
-
|
|
14
|
-
After the installation, please register the plugin in the `modern.config.ts` file:
|
|
15
|
-
|
|
16
|
-
```ts title="modern.config.ts"
|
|
17
|
-
import { appTools, defineConfig } from '@modern-js/app-tools';
|
|
18
|
-
import { proxyPlugin } from '@modern-js/plugin-proxy';
|
|
19
|
-
|
|
20
|
-
export default defineConfig({
|
|
21
|
-
plugins: [appTools(), proxyPlugin()],
|
|
22
|
-
});
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Object Type
|
|
26
|
-
|
|
27
|
-
When the value of `dev.proxy` is object type, the `key` of the object corresponds to the matching `pattern`, and the `value` of the object corresponds to the matching `target`.
|
|
28
|
-
|
|
29
|
-
Example:
|
|
30
|
-
|
|
31
|
-
```ts title="modern.config.ts"
|
|
32
|
-
export default defineConfig({
|
|
33
|
-
dev: {
|
|
34
|
-
proxy: {
|
|
35
|
-
'https://www.baidu.com': 'https://google.com.hk',
|
|
36
|
-
// Static files can be returned directly via the file protocol
|
|
37
|
-
'https://example.com/api': 'file://./data.json',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Please refer to [whistle - Matching Patterns](https://wproxy.org/whistle/pattern.html) for detailed usage.
|
|
44
|
-
|
|
45
|
-
### String Type
|
|
46
|
-
|
|
47
|
-
When the value of `dev.proxy` is string type, it can be used to specify a separate proxy file, for example:
|
|
48
|
-
|
|
49
|
-
```ts title="modern.config.ts"
|
|
50
|
-
export default defineConfig({
|
|
51
|
-
dev: {
|
|
52
|
-
proxy: './proxy.js',
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
```js title="proxy.js"
|
|
58
|
-
module.exports = {
|
|
59
|
-
name: 'my-app',
|
|
60
|
-
rules: `
|
|
61
|
-
^example.com:8080/api/*** http://localhost:3001/api/$
|
|
62
|
-
`,
|
|
63
|
-
};
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Start Proxy
|
|
67
|
-
|
|
68
|
-
Execute `dev`, when the prompt is as follows, the proxy server starts successfully:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
Local: http://localhost:8080/
|
|
72
|
-
Network: http://192.168.0.1:8080/
|
|
73
|
-
|
|
74
|
-
info Starting proxy server.....
|
|
75
|
-
success Proxy server start on localhost:8899
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Access the `localhost:8899` to view the Network and configure proxy rules on the UI interface:
|
|
79
|
-
|
|
80
|
-

|
|
81
|
-
|
|
82
|
-
:::info
|
|
83
|
-
The https agent automatically installs the certificate to obtain root privileges. Please enter the password as prompted. ** The password is only used when the certificate is trusted and will not be leaked or used for other links **.
|
|
84
|
-
|
|
85
|
-
:::
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
:::warning
|
|
2
|
-
`@modern-js/plugin-proxy` is no longer maintained and new versions will no longer be released. Please consider migrating to other proxy tools, such as [whistle](https://github.com/avwo/whistle).
|
|
3
|
-
:::
|
|
4
|
-
|
|
5
|
-
Modern.js provides an out-of-the-box global proxy plugin `@modern-js/plugin-proxy`, which is based on [whistle](https://github.com/avwo/whistle) and can be used to view and modify the requests and responses of HTTP/HTTPS, as well as be used as an HTTP proxy server.
|
|
6
|
-
|
|
7
|
-
### Setting Proxy Rules
|
|
8
|
-
|
|
9
|
-
After installing the proxy plugin and configuring the rules, run `pnpm run dev`. Modern.js will automatically enable the proxy server when the development server is started.
|
|
10
|
-
|
|
11
|
-
Specific proxy rules can be set via the [`dev.proxy`](/configure/app/dev/proxy) or the `config/proxy.js` file.
|
|
12
|
-
|
|
13
|
-
### Proxy Dashboard
|
|
14
|
-
|
|
15
|
-
After installing the proxy plugin and configuring the proxy rules, run the `pnpm run dev` command:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
Local: http://localhost:8080/
|
|
19
|
-
Network: http://192.168.0.1:8080/
|
|
20
|
-
|
|
21
|
-
info Starting proxy server.....
|
|
22
|
-
success Proxy server start on localhost:8899
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
You can see that the proxy server has started successfully in the console.
|
|
26
|
-
|
|
27
|
-
Access `http://localhost:8899`, and you can set the rules through the dashboard.
|
|
28
|
-
|
|
29
|
-

|