@modern-js/main-doc 2.0.3-alpha.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.turbo/turbo-build.log +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/index.md +0 -5
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/lint.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/serve.md +2 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/api/framework/lambda.md +12 -12
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/api/functions/api.md +13 -13
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/api/functions/app.md +0 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/api/functions/common.md +1 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/app.md +16 -9
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/index_.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/routes.md +5 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/server.md +6 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/stories.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/hooks/src/test.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/app/define-config.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/bff/hook.md +3 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/bootstrap.md +3 -6
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/create-app.md +1 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/use-loader.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/use-module-apps.md +58 -51
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/use-runtime-context.md +3 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/index.md +0 -5
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/connect.md +8 -5
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-store.md +1 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/handle-effect.md +3 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/model_.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-model.md +0 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-store.md +0 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/router/router.md +23 -54
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/ssr/no-ssr.md +1 -8
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/ssr/pre-render.md +10 -6
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/testing/render.md +0 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/utility/css-in-js.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/utility/head.md +3 -5
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/utility/loadable.md +14 -15
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/web-server/hook.md +4 -5
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/web-server/middleware.md +7 -6
- package/en/docusaurus-plugin-content-docs/current/components/command-tip.md +3 -2
- package/en/docusaurus-plugin-content-docs/current/components/enable-bff.md +12 -16
- package/en/docusaurus-plugin-content-docs/current/components/enable-micro-frontend.md +4 -4
- package/en/docusaurus-plugin-content-docs/current/components/global-proxy-config.md +6 -9
- package/en/docusaurus-plugin-content-docs/current/components/global-proxy.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/components/micro-master-manifest-config.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/components/micro-runtime-config.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/components/reduck-migration.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/components/reduck-tip.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/components/router-legacy-tip.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/auto-load-plugin.md +8 -9
- package/en/docusaurus-plugin-content-docs/current/configure/app/bff/prefix.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/bff/proxy.md +8 -9
- package/en/docusaurus-plugin-content-docs/current/configure/app/builder-plugins.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/deploy/microFrontend.md +11 -13
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/asset-prefix.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/hmr.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/https.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/port.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/progress-bar.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/proxy.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/start-url.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/experiments/lazy-compilation.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/app-icon.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/crossorigin.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/disable-html-folder.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/mount-id.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/tags-by-entries.md +12 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/tags.md +12 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title-by-entries.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/asset-prefix.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/assets-retry.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/charset.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/clean-dist-path.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/convert-to-rem.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/copy.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/css-module-local-ident-name.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/data-uri-limit.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-extract.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-module-extension.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-filename-hash.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-inline-runtime-chunk.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-minimize.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-node-polyfill.md +8 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-source-map.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-ts-checker.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/dist-path.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-fallback.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-manifest.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-css-module-tsdeclaration.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-scripts.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-styles.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-latest-decorators.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/externals.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/filename.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/legal-comments.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/override-browserslist.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/polyfill.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/ssg.md +3 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/svg-default-export.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/build-cache.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/bundle-analyze.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/chunk-split.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/print-file-size.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/profile.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-console.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-moment-locale.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/plugins.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/intro.md +11 -10
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/master-app.md +1 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/router.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/state.md +15 -15
- package/en/docusaurus-plugin-content-docs/current/configure/app/security/sri.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/base-url.md +3 -4
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/enable-framework-ext.md +5 -4
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/port.md +24 -4
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/public-routes.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/routes.md +7 -7
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/ssr-by-entries.md +5 -5
- package/en/docusaurus-plugin-content-docs/current/configure/app/server/ssr.md +4 -4
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/alias.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/compile-js-data-uri.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/config-dir.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/define.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/design-system.md +656 -634
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/disable-default-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/disable-entry-dirs.md +8 -8
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/enable-async-entry.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/entries-dir.md +7 -7
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/entries.md +4 -6
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/exclude.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/global-vars.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/include.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/module-scopes.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/pre-entry.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-extension-prefix.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-main-fields.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/autoprefixer.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/babel.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-extract.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-loader.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/dev-server.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/html-plugin.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/inspector.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/jest.md +9 -9
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/less.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/minify-css.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/postcss.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/pug.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/sass.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/style-loader.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/styled-components.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/swc.md +12 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/terser.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-checker.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-loader.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack-chain.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/bff/frameworks.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/bff/function.md +44 -38
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/bff/index.md +9 -9
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/bff/type.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/code-split.md +3 -4
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/compatibility.md +6 -7
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/eslint.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/index.md +0 -5
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/low-level.md +17 -19
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/ssg.md +8 -10
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/ssr.md +5 -11
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/testing.md +3 -3
- package/en/docusaurus-plugin-content-docs/current/guides/advanced-features/web-server.md +3 -4
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/alias.md +7 -11
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/css/css-in-js.md +6 -6
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/css/css-modules.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/css/less-sass.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/css/postcss.md +43 -47
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/css/tailwindcss.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/data-fetch.md +106 -192
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/env-vars.md +8 -8
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/html.md +55 -47
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/mock.md +4 -4
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/proxy.md +4 -5
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/routes.md +90 -9
- package/en/docusaurus-plugin-content-docs/current/guides/concept/entries.md +1 -2
- package/en/docusaurus-plugin-content-docs/current/guides/get-started/quick-start.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/get-started/upgrade.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/extend.md +13 -13
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/hook-list.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/hook.md +57 -54
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/implement.md +11 -11
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/lifecycle.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/framework-plugin/plugin-api.md +4 -4
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/app.md +33 -33
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/ejs.md +3 -3
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/fs.md +3 -3
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/git.md +3 -2
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/handlebars.md +3 -4
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/json.md +9 -12
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/npm.md +2 -3
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/introduce.md +4 -3
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/run-in-js.md +4 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/structure.md +13 -11
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/common.md +18 -27
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/abstract.md +1 -4
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/introduce.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +4 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/onForged.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +1 -4
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +1 -3
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/setInput.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/type.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/introduce.md +8 -9
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/develop.md +11 -12
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/use.md +8 -8
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/project.md +1 -2
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/micro-frontend/c01-introduction.md +7 -8
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/micro-frontend/c02-development.md +18 -21
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/micro-frontend/c03-main-app.md +41 -44
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/micro-frontend/c04-communicate.md +7 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/micro-frontend/c05-mixed-stack.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/auto-actions.md +0 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/computed-state.md +0 -2
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/define-model.md +3 -6
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/faq.md +2 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/manage-effects.md +2 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/model-communicate.md +1 -4
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/performance.md +1 -5
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/quick-start.md +0 -6
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/redux-integration.md +3 -2
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/test-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/typescript-best-practice.md +13 -14
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/use-model.md +14 -12
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/model/use-out-of-modernjs.md +4 -6
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c01-start.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c03-css.md +6 -8
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c04-routes.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c05-loader.md +2 -1
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c07-container.md +5 -5
- package/en/docusaurus-plugin-content-docs/current/tutorials/first-app/c08-entries.md +5 -6
- package/package.json +4 -4
- package/scripts/config.ts +4 -2
- package/scripts/summary.en.json +1 -1
- package/scripts/summary.zh.json +1 -1
- package/scripts/sync.ts +1 -1
- package/zh/apis/app/commands/index.md +0 -5
- package/zh/apis/app/commands/lint.md +1 -1
- package/zh/apis/app/commands/serve.md +2 -4
- package/zh/apis/app/hooks/api/framework/lambda.md +12 -12
- package/zh/apis/app/hooks/api/functions/api.md +13 -13
- package/zh/apis/app/hooks/api/functions/app.md +0 -2
- package/zh/apis/app/hooks/api/functions/common.md +1 -1
- package/zh/apis/app/hooks/index.md +0 -5
- package/zh/apis/app/hooks/shared.md +0 -1
- package/zh/apis/app/hooks/src/app.md +16 -9
- package/zh/apis/app/hooks/src/index_.md +0 -2
- package/zh/apis/app/hooks/src/routes.md +6 -7
- package/zh/apis/app/hooks/src/server.md +6 -4
- package/zh/apis/app/hooks/src/stories.md +1 -1
- package/zh/apis/app/hooks/src/test.md +1 -1
- package/zh/apis/app/runtime/app/define-config.md +1 -2
- package/zh/apis/app/runtime/bff/hook.md +3 -3
- package/zh/apis/app/runtime/core/bootstrap.md +2 -3
- package/zh/apis/app/runtime/core/use-loader.md +2 -2
- package/zh/apis/app/runtime/core/use-module-apps.md +53 -50
- package/zh/apis/app/runtime/core/use-runtime-context.md +3 -4
- package/zh/apis/app/runtime/index.md +0 -5
- package/zh/apis/app/runtime/model/Provider.md +1 -0
- package/zh/apis/app/runtime/model/auto-actions.md +1 -1
- package/zh/apis/app/runtime/model/connect.md +9 -5
- package/zh/apis/app/runtime/model/create-app.md +3 -3
- package/zh/apis/app/runtime/model/create-store.md +2 -4
- package/zh/apis/app/runtime/model/handle-effect.md +3 -4
- package/zh/apis/app/runtime/model/model_.md +0 -3
- package/zh/apis/app/runtime/model/use-local-model.md +0 -1
- package/zh/apis/app/runtime/model/use-store.md +0 -2
- package/zh/apis/app/runtime/router/router.md +23 -53
- package/zh/apis/app/runtime/ssr/no-ssr.md +1 -5
- package/zh/apis/app/runtime/ssr/pre-render.md +10 -6
- package/zh/apis/app/runtime/testing/cleanup.md +2 -2
- package/zh/apis/app/runtime/testing/render.md +0 -2
- package/zh/apis/app/runtime/utility/css-in-js.md +2 -2
- package/zh/apis/app/runtime/utility/head.md +3 -5
- package/zh/apis/app/runtime/utility/loadable.md +14 -15
- package/zh/apis/app/runtime/web-server/hook.md +5 -4
- package/zh/apis/app/runtime/web-server/middleware.md +8 -6
- package/zh/apis/monorepo/commands/bump.md +1 -1
- package/zh/apis/monorepo/commands/change.md +3 -2
- package/zh/apis/monorepo/commands/gen-release-note.md +1 -2
- package/zh/apis/monorepo/commands/index.md +1 -6
- package/zh/apis/monorepo/commands/lint.md +1 -1
- package/zh/apis/monorepo/commands/release.md +0 -1
- package/zh/apis/monorepo/hooks/index.md +1 -6
- package/zh/components/command-tip.md +3 -2
- package/zh/components/enable-bff.md +12 -16
- package/zh/components/enable-micro-frontend.md +4 -4
- package/zh/components/global-proxy-config.md +6 -9
- package/zh/components/global-proxy.md +0 -1
- package/zh/components/init-app.md +0 -1
- package/zh/components/micro-master-manifest-config.md +2 -2
- package/zh/components/micro-runtime-config.md +1 -1
- package/zh/components/reduck-migration.md +0 -1
- package/zh/components/router-legacy-tip.md +0 -1
- package/zh/configure/app/auto-load-plugin.md +9 -10
- package/zh/configure/app/bff/prefix.md +6 -10
- package/zh/configure/app/bff/proxy.md +9 -8
- package/zh/configure/app/builder-plugins.md +6 -6
- package/zh/configure/app/deploy/microFrontend.md +11 -11
- package/zh/configure/app/dev/asset-prefix.md +2 -2
- package/zh/configure/app/dev/hmr.md +2 -2
- package/zh/configure/app/dev/https.md +2 -2
- package/zh/configure/app/dev/port.md +2 -2
- package/zh/configure/app/dev/progress-bar.md +2 -2
- package/zh/configure/app/dev/proxy.md +0 -1
- package/zh/configure/app/dev/start-url.md +2 -2
- package/zh/configure/app/experiments/lazy-compilation.md +2 -2
- package/zh/configure/app/html/app-icon.md +2 -2
- package/zh/configure/app/html/crossorigin.md +2 -2
- package/zh/configure/app/html/disable-html-folder.md +2 -2
- package/zh/configure/app/html/favicon-by-entries.md +2 -2
- package/zh/configure/app/html/favicon.md +2 -2
- package/zh/configure/app/html/inject-by-entries.md +2 -2
- package/zh/configure/app/html/inject.md +2 -2
- package/zh/configure/app/html/meta-by-entries.md +2 -2
- package/zh/configure/app/html/meta.md +2 -2
- package/zh/configure/app/html/mount-id.md +2 -2
- package/zh/configure/app/html/tags-by-entries.md +12 -0
- package/zh/configure/app/html/tags.md +12 -0
- package/zh/configure/app/html/template-by-entries.md +2 -2
- package/zh/configure/app/html/template-parameters-by-entries.md +2 -2
- package/zh/configure/app/html/template-parameters.md +2 -2
- package/zh/configure/app/html/template.md +2 -2
- package/zh/configure/app/html/title-by-entries.md +2 -2
- package/zh/configure/app/html/title.md +2 -2
- package/zh/configure/app/output/asset-prefix.md +2 -2
- package/zh/configure/app/output/assets-retry.md +2 -2
- package/zh/configure/app/output/charset.md +2 -2
- package/zh/configure/app/output/clean-dist-path.md +2 -2
- package/zh/configure/app/output/convert-to-rem.md +2 -2
- package/zh/configure/app/output/copy.md +2 -2
- package/zh/configure/app/output/css-module-local-ident-name.md +2 -2
- package/zh/configure/app/output/data-uri-limit.md +2 -2
- package/zh/configure/app/output/disable-css-extract.md +2 -2
- package/zh/configure/app/output/disable-css-module-extension.md +2 -2
- package/zh/configure/app/output/disable-filename-hash.md +2 -2
- package/zh/configure/app/output/disable-inline-runtime-chunk.md +2 -2
- package/zh/configure/app/output/disable-minimize.md +2 -2
- package/zh/configure/app/output/disable-node-polyfill.md +8 -8
- package/zh/configure/app/output/disable-source-map.md +2 -2
- package/zh/configure/app/output/disable-ts-checker.md +2 -2
- package/zh/configure/app/output/dist-path.md +2 -2
- package/zh/configure/app/output/enable-asset-fallback.md +2 -2
- package/zh/configure/app/output/enable-asset-manifest.md +2 -2
- package/zh/configure/app/output/enable-css-module-tsdeclaration.md +2 -2
- package/zh/configure/app/output/enable-inline-scripts.md +2 -2
- package/zh/configure/app/output/enable-inline-styles.md +2 -2
- package/zh/configure/app/output/enable-latest-decorators.md +2 -2
- package/zh/configure/app/output/externals.md +2 -2
- package/zh/configure/app/output/filename.md +2 -2
- package/zh/configure/app/output/legal-comments.md +2 -2
- package/zh/configure/app/output/override-browserslist.md +2 -2
- package/zh/configure/app/output/polyfill.md +2 -2
- package/zh/configure/app/output/ssg.md +3 -2
- package/zh/configure/app/output/svg-default-export.md +2 -2
- package/zh/configure/app/performance/build-cache.md +2 -2
- package/zh/configure/app/performance/bundle-analyze.md +2 -2
- package/zh/configure/app/performance/chunk-split.md +2 -2
- package/zh/configure/app/performance/print-file-size.md +2 -2
- package/zh/configure/app/performance/profile.md +2 -2
- package/zh/configure/app/performance/remove-console.md +2 -2
- package/zh/configure/app/performance/remove-moment-locale.md +2 -2
- package/zh/configure/app/plugins.md +6 -6
- package/zh/configure/app/runtime/intro.md +12 -11
- package/zh/configure/app/runtime/master-app.md +1 -2
- package/zh/configure/app/runtime/router.md +6 -7
- package/zh/configure/app/runtime/state.md +15 -16
- package/zh/configure/app/security/sri.md +2 -2
- package/zh/configure/app/server/base-url.md +3 -6
- package/zh/configure/app/server/enable-framework-ext.md +5 -4
- package/zh/configure/app/server/port.md +24 -6
- package/zh/configure/app/server/public-routes.md +6 -8
- package/zh/configure/app/server/routes.md +6 -6
- package/zh/configure/app/server/ssr-by-entries.md +5 -8
- package/zh/configure/app/server/ssr.md +4 -5
- package/zh/configure/app/source/alias.md +2 -2
- package/zh/configure/app/source/compile-js-data-uri.md +2 -2
- package/zh/configure/app/source/config-dir.md +2 -2
- package/zh/configure/app/source/define.md +2 -2
- package/zh/configure/app/source/design-system.md +656 -630
- package/zh/configure/app/source/disable-default-entries.md +3 -3
- package/zh/configure/app/source/disable-entry-dirs.md +8 -7
- package/zh/configure/app/source/enable-async-entry.md +3 -3
- package/zh/configure/app/source/entries-dir.md +7 -7
- package/zh/configure/app/source/entries.md +5 -6
- package/zh/configure/app/source/exclude.md +2 -2
- package/zh/configure/app/source/global-vars.md +2 -2
- package/zh/configure/app/source/include.md +2 -2
- package/zh/configure/app/source/module-scopes.md +2 -2
- package/zh/configure/app/source/pre-entry.md +2 -2
- package/zh/configure/app/source/resolve-extension-prefix.md +2 -2
- package/zh/configure/app/source/resolve-main-fields.md +2 -2
- package/zh/configure/app/testing/transformer.md +2 -3
- package/zh/configure/app/tools/autoprefixer.md +2 -2
- package/zh/configure/app/tools/babel.md +2 -2
- package/zh/configure/app/tools/css-extract.md +2 -2
- package/zh/configure/app/tools/css-loader.md +2 -2
- package/zh/configure/app/tools/dev-server.md +2 -2
- package/zh/configure/app/tools/html-plugin.md +2 -2
- package/zh/configure/app/tools/inspector.md +2 -2
- package/zh/configure/app/tools/jest.md +9 -9
- package/zh/configure/app/tools/less.md +2 -2
- package/zh/configure/app/tools/minify-css.md +2 -2
- package/zh/configure/app/tools/postcss.md +2 -2
- package/zh/configure/app/tools/pug.md +2 -2
- package/zh/configure/app/tools/sass.md +2 -2
- package/zh/configure/app/tools/style-loader.md +2 -2
- package/zh/configure/app/tools/styled-components.md +2 -2
- package/zh/configure/app/tools/swc.md +12 -1
- package/zh/configure/app/tools/terser.md +2 -2
- package/zh/configure/app/tools/ts-checker.md +2 -2
- package/zh/configure/app/tools/ts-loader.md +2 -2
- package/zh/configure/app/tools/webpack-chain.md +2 -2
- package/zh/configure/app/tools/webpack.md +2 -2
- package/zh/guides/advanced-features/bff/frameworks.md +6 -6
- package/zh/guides/advanced-features/bff/function.md +49 -44
- package/zh/guides/advanced-features/bff/index.md +9 -9
- package/zh/guides/advanced-features/bff/type.md +0 -1
- package/zh/guides/advanced-features/code-split.md +3 -3
- package/zh/guides/advanced-features/compatibility.md +6 -7
- package/zh/guides/advanced-features/eslint.md +0 -1
- package/zh/guides/advanced-features/index.md +0 -5
- package/zh/guides/advanced-features/low-level.md +17 -19
- package/zh/guides/advanced-features/ssg.md +8 -9
- package/zh/guides/advanced-features/ssr.md +5 -11
- package/zh/guides/advanced-features/testing.md +3 -2
- package/zh/guides/advanced-features/web-server.md +3 -4
- package/zh/guides/basic-features/alias.md +7 -11
- package/zh/guides/basic-features/css/css-in-js.md +5 -5
- package/zh/guides/basic-features/css/css-modules.md +2 -2
- package/zh/guides/basic-features/css/postcss.md +42 -46
- package/zh/guides/basic-features/css/tailwindcss.md +5 -5
- package/zh/guides/basic-features/data-fetch.md +109 -192
- package/zh/guides/basic-features/env-vars.md +7 -6
- package/zh/guides/basic-features/html.md +54 -46
- package/zh/guides/basic-features/index.md +0 -5
- package/zh/guides/basic-features/mock.md +4 -4
- package/zh/guides/basic-features/proxy.md +4 -5
- package/zh/guides/basic-features/routes.md +23 -20
- package/zh/guides/concept/entries.md +5 -7
- package/zh/guides/get-started/quick-start.md +3 -4
- package/zh/guides/topic-detail/changesets/add.md +1 -3
- package/zh/guides/topic-detail/changesets/changelog.md +30 -31
- package/zh/guides/topic-detail/changesets/commit.md +44 -45
- package/zh/guides/topic-detail/changesets/config.md +2 -1
- package/zh/guides/topic-detail/changesets/github.md +6 -10
- package/zh/guides/topic-detail/changesets/introduce.md +0 -1
- package/zh/guides/topic-detail/changesets/release-note.md +9 -12
- package/zh/guides/topic-detail/changesets/release-pre.md +1 -1
- package/zh/guides/topic-detail/framework-plugin/extend.md +13 -13
- package/zh/guides/topic-detail/framework-plugin/hook-list.md +2 -2
- package/zh/guides/topic-detail/framework-plugin/hook.md +57 -54
- package/zh/guides/topic-detail/framework-plugin/implement.md +11 -11
- package/zh/guides/topic-detail/framework-plugin/plugin-api.md +4 -4
- package/zh/guides/topic-detail/generator/codesmith/api/app.md +36 -36
- package/zh/guides/topic-detail/generator/codesmith/api/ejs.md +2 -2
- package/zh/guides/topic-detail/generator/codesmith/api/fs.md +2 -2
- package/zh/guides/topic-detail/generator/codesmith/api/git.md +3 -2
- package/zh/guides/topic-detail/generator/codesmith/api/handlebars.md +2 -2
- package/zh/guides/topic-detail/generator/codesmith/api/json.md +9 -11
- package/zh/guides/topic-detail/generator/codesmith/api/npm.md +4 -2
- package/zh/guides/topic-detail/generator/codesmith/introduce.md +20 -7
- package/zh/guides/topic-detail/generator/codesmith/run-in-js.md +4 -5
- package/zh/guides/topic-detail/generator/codesmith/structure.md +13 -10
- package/zh/guides/topic-detail/generator/config/common.md +18 -27
- package/zh/guides/topic-detail/generator/plugin/abstract.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/introduce.md +1 -0
- package/zh/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +4 -4
- package/zh/guides/topic-detail/generator/plugin/api/info/locale.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +2 -2
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +3 -4
- package/zh/guides/topic-detail/generator/plugin/api/input/setInput.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/type.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/introduce.md +8 -9
- package/zh/guides/topic-detail/generator/plugin/develop.md +13 -13
- package/zh/guides/topic-detail/generator/plugin/use.md +8 -8
- package/zh/guides/topic-detail/generator/project.md +1 -1
- package/zh/guides/topic-detail/micro-frontend/c01-introduction.md +7 -8
- package/zh/guides/topic-detail/micro-frontend/c02-development.md +20 -23
- package/zh/guides/topic-detail/micro-frontend/c03-main-app.md +41 -44
- package/zh/guides/topic-detail/micro-frontend/c04-communicate.md +7 -5
- package/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.md +1 -1
- package/zh/guides/topic-detail/model/auto-actions.md +0 -1
- package/zh/guides/topic-detail/model/computed-state.md +0 -2
- package/zh/guides/topic-detail/model/define-model.md +3 -6
- package/zh/guides/topic-detail/model/faq.md +2 -5
- package/zh/guides/topic-detail/model/manage-effects.md +2 -5
- package/zh/guides/topic-detail/model/model-communicate.md +1 -4
- package/zh/guides/topic-detail/model/performance.md +1 -5
- package/zh/guides/topic-detail/model/quick-start.md +0 -6
- package/zh/guides/topic-detail/model/redux-integration.md +3 -2
- package/zh/guides/topic-detail/model/test-model.md +1 -1
- package/zh/guides/topic-detail/model/typescript-best-practice.md +13 -14
- package/zh/guides/topic-detail/model/use-model.md +14 -12
- package/zh/guides/topic-detail/model/use-out-of-modernjs.md +4 -6
- package/zh/guides/topic-detail/monorepo/intro.md +0 -1
- package/zh/guides/topic-detail/monorepo/sub-project-interface.md +14 -7
- package/zh/tutorials/first-app/c01-start.md +2 -2
- package/zh/tutorials/first-app/c03-css.md +6 -9
- package/zh/tutorials/first-app/c04-routes.md +1 -1
- package/zh/tutorials/first-app/c05-loader.md +2 -1
- package/zh/tutorials/first-app/c07-container.md +6 -7
- package/zh/tutorials/first-app/c08-entries.md +5 -7
@@ -10,67 +10,63 @@ sidebar_position: 3
|
|
10
10
|
|
11
11
|
1. [Autoprefixer](https://github.com/postcss/autoprefixer) 根据需要支持的浏览器范围,会自动为 CSS 规则添加需要的浏览器厂商前缀。Modern.js 默认支持的浏览器范围为:`['> 0.01%', 'not dead', 'not op_mini all']`。
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
"browserslist": [
|
24
|
-
"last 1 version",
|
25
|
-
"> 1%",
|
26
|
-
"IE 10"
|
27
|
-
]
|
28
|
-
}
|
29
|
-
```
|
30
|
-
:::
|
13
|
+
:::info 注意
|
14
|
+
- 【支持的浏览器范围为:`> 0.01%`】是指浏览器市场份额大于 0.01%。
|
15
|
+
- `not dead` 是指不包含官方不再支持的浏览器和过去24个月没有更新的浏览器。
|
16
|
+
- `not op_mini all` 是指不包含 Opera Mini。
|
17
|
+
:::
|
18
|
+
|
19
|
+
:::info 补充信息
|
20
|
+
如果需要修改默认浏览器支持范围,可以在项目的 `package.json` 文件中配置 `browserslist`,设置规则参考 [Browserslist](https://github.com/browserslist/browserslist) 的使用,下面是一个示例:
|
21
|
+
`json title="package.json" { "browserslist": [ "last 1 version", "> 1%", "IE 10" ] } `
|
22
|
+
:::
|
31
23
|
|
32
24
|
2. 提供 [CSS custom properties](https://www.w3.org/TR/css-variables-1/) 支持,可以在 CSS 中定义和使用自定义变量,如:
|
33
25
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
26
|
+
```css
|
27
|
+
:root {
|
28
|
+
--main-bg-color: pink;
|
29
|
+
}
|
38
30
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
31
|
+
body {
|
32
|
+
background-color: var(--main-bg-color);
|
33
|
+
}
|
34
|
+
```
|
43
35
|
|
44
36
|
3. 提供 [CSS Nesting](https://drafts.csswg.org/css-nesting-1/) 支持,可以在 CSS 中使用嵌套写法,如:
|
45
37
|
|
46
|
-
|
47
|
-
|
38
|
+
```css
|
39
|
+
table.colortable td {
|
40
|
+
text-align: center;
|
41
|
+
}
|
42
|
+
table.colortable td.c {
|
43
|
+
text-transform: uppercase;
|
44
|
+
}
|
45
|
+
```
|
46
|
+
|
47
|
+
也可以改写成 CSS 嵌套写法:
|
48
|
+
|
49
|
+
```css
|
50
|
+
table.colortable {
|
51
|
+
& td {
|
48
52
|
text-align: center;
|
49
|
-
|
50
|
-
|
51
|
-
text-transform: uppercase;
|
52
|
-
}
|
53
|
-
```
|
54
|
-
也可以改写成 CSS 嵌套写法:
|
55
|
-
```css
|
56
|
-
table.colortable {
|
57
|
-
& td {
|
58
|
-
text-align: center;
|
59
|
-
&.c { text-transform: uppercase }
|
53
|
+
&.c {
|
54
|
+
text-transform: uppercase;
|
60
55
|
}
|
61
56
|
}
|
62
|
-
|
57
|
+
}
|
58
|
+
```
|
63
59
|
|
64
60
|
4. 修复已知的 [Flexbugs](https://github.com/philipwalton/flexbugs) 。
|
65
61
|
5. 对以下 CSS 特性提供兼容:
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
62
|
+
- [`initial` 属性值](https://developer.mozilla.org/en-US/docs/Web/CSS/initial_value)
|
63
|
+
- [`break-` 属性](https://developer.mozilla.org/en-US/docs/Web/CSS/break-after)
|
64
|
+
- [`font-variant`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant)
|
65
|
+
- [Media Query Ranges](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#syntax_improvements_in_level_4)
|
70
66
|
|
71
|
-
|
67
|
+
当需要修改 PostCSS 配置时,可以通过底层配置 [`tools.postcss`](/docs/configure/app/tools/postcss) 来实现,下面是一个示例:
|
72
68
|
|
73
|
-
```
|
69
|
+
```ts title="modern.config.ts"
|
74
70
|
export default defineConfig({
|
75
71
|
tools: {
|
76
72
|
postcss: {
|
@@ -16,11 +16,11 @@ sidebar_position: 2
|
|
16
16
|
在 `modern.config.ts` 中注册 Tailwind 插件:
|
17
17
|
|
18
18
|
```ts title="modern.config.ts"
|
19
|
-
import
|
19
|
+
import tailwindcssPlugin from '@modern-js/plugin-tailwindcss';
|
20
|
+
|
20
21
|
// https://modernjs.dev/docs/apis/app/config
|
21
22
|
export default defineConfig({
|
22
|
-
...,
|
23
|
-
plugins: [..., TailwindCSSPlugin()],
|
23
|
+
plugins: [..., tailwindcssPlugin()],
|
24
24
|
});
|
25
25
|
```
|
26
26
|
|
@@ -68,7 +68,7 @@ Tailwind CSS v2 和 v3 均不支持 IE 11 浏览器,相关背景请参考:
|
|
68
68
|
|
69
69
|
当需要自定义 Tailwind CSS 的 [theme](https://tailwindcss.com/docs/theme) 配置的时候,可以在配置 [`source.designSystem`](/docs/configure/app/source/design-system) 中修改,例如,颜色主题中增加一个 `primary`:
|
70
70
|
|
71
|
-
```
|
71
|
+
```ts title="modern.config.ts"
|
72
72
|
export default defineConfig({
|
73
73
|
source: {
|
74
74
|
designSystem: {
|
@@ -84,7 +84,7 @@ export default defineConfig({
|
|
84
84
|
|
85
85
|
当需要对 Tailwind CSS 做 [theme](https://tailwindcss.com/docs/theme) 以外的其他特殊配置时,可以在 [`tools.tailwindcss`](/docs/configure/app/tools/tailwindcss) 中配置,例如设置 `variants`:
|
86
86
|
|
87
|
-
```
|
87
|
+
```ts title="modern.config.ts"
|
88
88
|
export default defineConfig({
|
89
89
|
tools: {
|
90
90
|
tailwindcss: {
|
@@ -9,7 +9,7 @@ Modern.js 中提供了开箱即用的数据获取能力,开发者可以通过
|
|
9
9
|
|
10
10
|
## Data Loader(推荐)
|
11
11
|
|
12
|
-
Modern.js 推荐使用约定式路由做路由的管理,通过 Modern.js 的[约定式(嵌套)路由](/docs/guides/basic-features/routes#约定式路由),每个路由组件(`layout.ts` 或 `page.ts`)
|
12
|
+
Modern.js 推荐使用约定式路由做路由的管理,通过 Modern.js 的[约定式(嵌套)路由](/docs/guides/basic-features/routes#约定式路由),每个路由组件(`layout.ts` 或 `page.ts`)可以有一个同名的 `loader` 文件,该 `loader` 文件需要导出一个函数,函数会在组件渲染之前执行,为路由组件提供数据。
|
13
13
|
|
14
14
|
:::info
|
15
15
|
Modern.js v1 支持通过 [useLoader](#useloader旧版) 获取数据,这已经不是我们推荐的用法,除迁移过程外,不推荐两者混用。
|
@@ -17,36 +17,7 @@ Modern.js v1 支持通过 [useLoader](#useloader旧版) 获取数据,这已经
|
|
17
17
|
|
18
18
|
### 基础示例
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
```ts
|
23
|
-
// routes/user/page.tsx
|
24
|
-
import { useLoaderData } from '@modern-js/runtime/router';
|
25
|
-
|
26
|
-
export const loader = async(): ProfileData => {
|
27
|
-
const res = await fetch('https://api/user/profile');
|
28
|
-
return await res.json();
|
29
|
-
}
|
30
|
-
|
31
|
-
export default function UserPage() {
|
32
|
-
const profileData = useLoaderData() as ProfileData;
|
33
|
-
return <div>{profileData}</div>;
|
34
|
-
}
|
35
|
-
```
|
36
|
-
|
37
|
-
在 CSR 环境下,`loader` 函数会在客户端执行,`loader` 函数内可以使用浏览器的 API(但通常不需要,也不推荐)。
|
38
|
-
|
39
|
-
在 SSR 环境下,不管是首屏,还是在客户端的导航,`loader` 函数只会在服务端执行,这里可以调用任意的 Node.js API,同时这里使用的任何依赖和代码都不会包含在客户端的 bundle 中。
|
40
|
-
|
41
|
-
:::info
|
42
|
-
在以后的版本中,Modern.js 可能会支持在 CSR 环境下,`loader` 函数也在服务端运行,以提高性能和安全性,所以这里建议尽可能地保证 loader 的纯粹,只做数据获取的场景。
|
43
|
-
:::
|
44
|
-
|
45
|
-
当在客户端导航时,基于 Modern.js 的[约定式路由](/docs/guides/basic-features/routes),所有的 loader 函数会并行执行(请求),即当访问 `/user/profile` 时,`/user` 和 `/user/profile` 下的 loader 函数都会并行执行(请求),以提高客户端的性能。
|
46
|
-
|
47
|
-
### Loader 放在单独文件中
|
48
|
-
|
49
|
-
除了支持 `loader` 函数从前端组件中导出,Modern.js 也支持将 `loader` 函数放在单独的文件中, 将 `loader` 函数放在单独的文件中,可以无需留意[副作用](#副作用处理)相关注意事项,但可以要注意的是,路由组件如 `layout.ts` 和 loader 文件 `layout.loader.ts` 不能引入彼此的代码,如果需要相关类型可以使用 `import type`,可以见下面的示例:
|
20
|
+
路由组件如 `layout.ts` 或 `page.ts`,可以定义同名的 `loader` 文件,`loader` 文件中导出一个函数,该函数提供组件所需的数据,然后在路由组件中通过 `useLoaderData` 函数获取数据,如下面示例:
|
50
21
|
|
51
22
|
```
|
52
23
|
.
|
@@ -59,20 +30,11 @@ export default function UserPage() {
|
|
59
30
|
└── page.loader.ts
|
60
31
|
```
|
61
32
|
|
62
|
-
|
63
|
-
```tsx
|
64
|
-
// routes/user/page.loader.tsx
|
65
|
-
type ProfileData = { /* some type declarations */ }
|
66
|
-
|
67
|
-
export const loader = async(): ProfileData => {
|
68
|
-
const res = await fetch('https://api/user/profile');
|
69
|
-
return await res.json();
|
70
|
-
}
|
33
|
+
在文件中定义以下代码:
|
71
34
|
|
72
|
-
|
35
|
+
```ts title="routes/user/page.tsx"
|
73
36
|
import { useLoaderData } from '@modern-js/runtime/router';
|
74
|
-
|
75
|
-
import type { ProfileData } from './page.loader';
|
37
|
+
import type { ProfileData } from './page.loader.ts';
|
76
38
|
|
77
39
|
export default function UserPage() {
|
78
40
|
const profileData = useLoaderData() as ProfileData;
|
@@ -80,24 +42,48 @@ export default function UserPage() {
|
|
80
42
|
}
|
81
43
|
```
|
82
44
|
|
45
|
+
```ts title="routes/user/page.loader.ts"
|
46
|
+
export type ProfileData = {
|
47
|
+
/* some types */
|
48
|
+
};
|
83
49
|
|
84
|
-
|
50
|
+
export default async (): Promise<ProfileData> => {
|
51
|
+
const res = await fetch('https://api/user/profile');
|
52
|
+
return await res.json();
|
53
|
+
};
|
54
|
+
```
|
55
|
+
|
56
|
+
:::caution
|
57
|
+
这里路由组件和 `loader` 文件共享类型,要使用 `import type` 语法。
|
58
|
+
:::
|
59
|
+
|
60
|
+
在 CSR 环境下,`loader` 函数会在客户端执行,`loader` 函数内可以使用浏览器的 API(但通常不需要,也不推荐)。
|
85
61
|
|
62
|
+
在 SSR 环境下,不管是首屏,还是在客户端的导航,`loader` 函数只会在服务端执行,这里可以调用任意的 Node.js API,同时这里使用的任何依赖和代码都不会包含在客户端的 bundle 中。
|
63
|
+
|
64
|
+
:::info
|
65
|
+
在以后的版本中,Modern.js 可能会支持在 CSR 环境下,`loader` 函数也在服务端运行,以提高性能和安全性,所以这里建议尽可能地保证 loader 的纯粹,只做数据获取的场景。
|
66
|
+
:::
|
67
|
+
|
68
|
+
当在客户端导航时,基于 Modern.js 的[约定式路由](/docs/guides/basic-features/routes),所有的 loader 函数会并行执行(请求),即当访问 `/user/profile` 时,`/user` 和 `/user/profile` 下的 loader 函数都会并行执行(请求),以提高客户端的性能。
|
69
|
+
|
70
|
+
### `loader` 函数
|
86
71
|
|
87
72
|
`loader` 函数有两个入参:
|
73
|
+
|
88
74
|
#### `Params`
|
89
75
|
|
90
76
|
当路由文件通过 `[]` 时,会作为[动态路由](/docs/guides/basic-features/routes#动态路由),动态路由片段会作为参数传入 loader 函数:
|
91
77
|
|
92
78
|
```tsx
|
93
|
-
// routes/user/[id]/page.
|
79
|
+
// routes/user/[id]/page.loader.ts
|
94
80
|
import { LoaderArgs } from '@modern-js/runtime/router';
|
95
81
|
|
96
|
-
export
|
82
|
+
export default async ({ params }: LoaderArgs) => {
|
97
83
|
const { id } = params;
|
98
84
|
const res = await fetch(`https://api/user/${id}`);
|
99
85
|
return res.json();
|
100
|
-
}
|
86
|
+
};
|
101
87
|
```
|
102
88
|
|
103
89
|
当访问 `/user/123` 时,`loader` 函数的参数为 `{ params: { id: '123' } }`。
|
@@ -107,15 +93,16 @@ export const loader = async({ params }: LoaderArgs) => {
|
|
107
93
|
`request` 是一个 [Fetch Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) 实例。
|
108
94
|
|
109
95
|
一个常见的使用场景是通过 `request` 获取查询参数:
|
96
|
+
|
110
97
|
```tsx
|
111
|
-
// routes/user/[id]/page.
|
98
|
+
// routes/user/[id]/page.loader.ts
|
112
99
|
import { LoaderArgs } from '@modern-js/runtime/router';
|
113
100
|
|
114
|
-
export
|
101
|
+
export default async ({ request }: LoaderArgs) => {
|
115
102
|
const url = new URL(request.url);
|
116
|
-
const userId = url.searchParams.get(
|
103
|
+
const userId = url.searchParams.get('id');
|
117
104
|
return queryUser(userId);
|
118
|
-
}
|
105
|
+
};
|
119
106
|
```
|
120
107
|
|
121
108
|
#### 返回值
|
@@ -123,44 +110,47 @@ export const loader = async({ request }: LoaderArgs) => {
|
|
123
110
|
`loader` 函数的返回值可以是任何可序列化的内容,也可以是一个 [Fetch Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) 实例:
|
124
111
|
|
125
112
|
```tsx
|
126
|
-
|
113
|
+
const loader = async (): Promise<ProfileData> => {
|
127
114
|
return {
|
128
115
|
message: 'hello world',
|
129
|
-
}
|
130
|
-
}
|
116
|
+
};
|
117
|
+
};
|
118
|
+
export default loader;
|
131
119
|
```
|
132
120
|
|
133
121
|
默认情况下,`loader` 返回的响应 `Content-type` 是 `application/json`,`status` 为 200,你可以通过自定义 `Response` 来设置:
|
122
|
+
|
134
123
|
```tsx
|
135
|
-
|
136
|
-
const data = {message: 'hello world'};
|
124
|
+
const loader = async (): Promise<ProfileData> => {
|
125
|
+
const data = { message: 'hello world' };
|
137
126
|
return new Response(JSON.stringify(data), {
|
138
127
|
status: 200,
|
139
128
|
headers: {
|
140
|
-
|
129
|
+
'Content-Type': 'application/json; utf-8',
|
141
130
|
},
|
142
131
|
});
|
143
|
-
}
|
132
|
+
};
|
144
133
|
```
|
145
134
|
|
146
135
|
### 请求 API
|
147
136
|
|
148
137
|
Modern.js 对 `fetch` API 做了 polyfill, 用于发起请求,该 API 与浏览器的 `fetch` API 一致,但是在服务端也能使用该 API 发起请求,这意味着不管是 CSR 还是 SSR,都可以使用统一的 `fetch` API 进行数据获取:
|
138
|
+
|
149
139
|
```tsx
|
150
|
-
|
140
|
+
async function loader() {
|
151
141
|
const res = await fetch('https://api/user/profile');
|
152
142
|
}
|
153
143
|
```
|
154
144
|
|
155
|
-
|
156
145
|
### 错误处理
|
157
146
|
|
158
147
|
在 `loader` 函数中,可以通过 `throw error` 或者 `throw response` 的方式处理错误,当 `loader` 函数中有错误被抛出时,Modern.js 会停止执行当前 loader 中的代码,并将前端 UI 切换到定义的 [`ErrorBoundary`](/docs/guides/basic-features/routes#错误处理) 组件:
|
148
|
+
|
159
149
|
```tsx
|
160
|
-
// routes/user/profile/page.
|
161
|
-
export async function loader(){
|
150
|
+
// routes/user/profile/page.loader.ts
|
151
|
+
export default async function loader() {
|
162
152
|
const res = await fetch('https://api/user/profile');
|
163
|
-
if(!res.ok){
|
153
|
+
if (!res.ok) {
|
164
154
|
throw res;
|
165
155
|
}
|
166
156
|
return res.json();
|
@@ -184,12 +174,13 @@ export default ErrorBoundary;
|
|
184
174
|
### 获取上层组件的数据
|
185
175
|
|
186
176
|
很多场景下,子组件需要获取到祖先组件 loader 中的数据,你可以通过 `useRouteLoaderData` 方便地获取到祖先组件的数据:
|
177
|
+
|
187
178
|
```tsx
|
188
179
|
// routes/user/profile/page.tsx
|
189
180
|
import { useRouteLoaderData } from '@modern-js/runtime/router';
|
190
181
|
|
191
182
|
export default function UserLayout() {
|
192
|
-
// 获取 routes/user/layout.
|
183
|
+
// 获取 routes/user/layout.loader.ts 中 loader 返回的数据
|
193
184
|
const data = useRouteLoaderData('user/layout');
|
194
185
|
return (
|
195
186
|
<div>
|
@@ -203,17 +194,19 @@ export default function UserLayout() {
|
|
203
194
|
`userRouteLoaderData` 接受一个参数 `routeId`,在使用约定式路由时,Modern.js 会为你自动生成`routeId`,`routeId` 的值是对应组件相对于 `src/routes` 的路径,如上面的例子中,子组件想要获取 `routes/user/layout.tsx` 中 loader 返回的数据,`routeId` 的值就是 `user/layout`。
|
204
195
|
|
205
196
|
在多 entry(MPA) 场景下,`routeId` 的值需要加上对应 entry 的 name,entry name 非指定情况下一般是 entry 目录名,如以下目录结构:
|
197
|
+
|
206
198
|
```bash
|
207
199
|
.
|
208
200
|
└── src
|
209
201
|
├── entry1
|
210
|
-
│
|
202
|
+
│ └── routes
|
203
|
+
│ └── layout.tsx
|
211
204
|
└── entry2
|
212
|
-
|
205
|
+
└── routes
|
206
|
+
└── layout.tsx
|
213
207
|
```
|
214
208
|
|
215
|
-
如果想获取 `entry1/layout.tsx` 中 loader 返回的数据,`routeId` 的值就是 `entry1_layout`。
|
216
|
-
|
209
|
+
如果想获取 `entry1/routes/layout.tsx` 中 loader 返回的数据,`routeId` 的值就是 `entry1_layout`。
|
217
210
|
|
218
211
|
### (WIP)Loading UI
|
219
212
|
|
@@ -222,34 +215,8 @@ export default function UserLayout() {
|
|
222
215
|
目前仅支持 CSR,敬请期待 Streaming SSR。
|
223
216
|
:::
|
224
217
|
|
225
|
-
|
226
|
-
```bash
|
227
|
-
.
|
228
|
-
└── routes
|
229
|
-
├── layout.tsx
|
230
|
-
└── user
|
231
|
-
├── layout.tsx
|
232
|
-
└── page.ts
|
233
|
-
```
|
234
|
-
|
235
|
-
我们在 `user/layout.tsx` 中获取用户的详细数据,在获取数据之前,希望展示一个 Loading UI。
|
236
|
-
|
237
|
-
首先,在项目中在 `routes` 目录下增加一个 `loading.tsx` 组件,该 `loading` 组件会对子目录下的所有路由生效(如 user):
|
238
|
-
```bash
|
239
|
-
.
|
240
|
-
└── routes
|
241
|
-
├── layout.tsx
|
242
|
-
├── loading.tsx
|
243
|
-
└── user
|
244
|
-
├── layout.tsx
|
245
|
-
└── page.ts
|
246
|
-
```
|
247
|
-
|
248
|
-
:::info
|
249
|
-
loading 组件的具体用法,请查看[loading](/docs/guides/basic-features/routes#loading)
|
250
|
-
:::
|
218
|
+
在 `user/layout.tsx` 中添加以下代码:
|
251
219
|
|
252
|
-
然后,在 `user/layout.tsx` 中添加以下代码:
|
253
220
|
```tsx title="routes/user/layout.tsx"
|
254
221
|
import {
|
255
222
|
Await,
|
@@ -269,14 +236,18 @@ export default function UserLayout() {
|
|
269
236
|
const { userInfo } = useLoaderData() as {userInfo: Promise<UserInfo>};
|
270
237
|
return (
|
271
238
|
<div>
|
272
|
-
<
|
273
|
-
<
|
274
|
-
|
275
|
-
|
276
|
-
<
|
277
|
-
|
278
|
-
|
279
|
-
|
239
|
+
<React.Suspense
|
240
|
+
fallback={<p>Loading...</p>}
|
241
|
+
>
|
242
|
+
<Await resolve={userInfo} children={userInfo => (
|
243
|
+
<div>
|
244
|
+
<span>{userInfo.name}</span>
|
245
|
+
<span>{userInfo.age}</span>
|
246
|
+
<Outlet>
|
247
|
+
</div>
|
248
|
+
)}>
|
249
|
+
</Await>
|
250
|
+
</React.Suspense>
|
280
251
|
</div>
|
281
252
|
);
|
282
253
|
}
|
@@ -288,87 +259,8 @@ Await 组件的具体用法请查看 [Await](https://reactrouter.com/en/main/com
|
|
288
259
|
defer 的具体用法请查看 [defer](https://reactrouter.com/en/main/guides/deferred)
|
289
260
|
:::
|
290
261
|
|
291
|
-
|
292
262
|
<!-- TODO 缓存相关 -->
|
293
263
|
|
294
|
-
### 副作用处理
|
295
|
-
|
296
|
-
如上面所述,Modern.js 会将服务端代码 `loader` 从客户端 bundle 中移除,有一些你需要注意的事项,如果不想受副作用的影响,可以使用[单独文件](#单独文件) 的方式定义 `loader`。
|
297
|
-
|
298
|
-
:::info
|
299
|
-
在 CSR 场景下,通常副作用对项目影响较小,但依然希望你能遵循以下约定。
|
300
|
-
:::
|
301
|
-
|
302
|
-
模块的副作用可以认为是在模块被加载时执行的代码,比如:
|
303
|
-
```tsx
|
304
|
-
// routes/user/page.tsx
|
305
|
-
import { useLoaderData } from '@modern-js/runtime/router';
|
306
|
-
// highlight-next-line
|
307
|
-
import { transformProfile } from "./utils";
|
308
|
-
// highlight-next-line
|
309
|
-
console.log(transformProfile);
|
310
|
-
|
311
|
-
export const loader = async(): ProfileData => {
|
312
|
-
const res = await fetch('https://api/user/profile');
|
313
|
-
const data = await res.json();
|
314
|
-
return transformProfile(data);
|
315
|
-
}
|
316
|
-
|
317
|
-
export default function UserPage() {
|
318
|
-
const profileData = useLoaderData() as ProfileData;
|
319
|
-
return <div>{profileData}</div>;
|
320
|
-
}
|
321
|
-
```
|
322
|
-
|
323
|
-
因为 `console.log` 在 `routes/user/page.tsx` 加载时,就会被执行,编译器不会移除它,`transformProfile` 就会打包到客户端的 bundle 中。
|
324
|
-
|
325
|
-
所以我们不推荐有任何代码在模块加载时执行,包括项目代码和使用的第三方模块,以下是一些我们不推荐的写法:
|
326
|
-
|
327
|
-
```tsx
|
328
|
-
// routes/user/page.tsx
|
329
|
-
export default function UserPage() {
|
330
|
-
return <div>profile</div>;
|
331
|
-
}
|
332
|
-
|
333
|
-
UserPage.config = {}
|
334
|
-
```
|
335
|
-
|
336
|
-
```tsx
|
337
|
-
// routes/init.ts
|
338
|
-
document.title = 'Modern.js';
|
339
|
-
|
340
|
-
// routes/layout.tsx
|
341
|
-
import "./init.ts";
|
342
|
-
|
343
|
-
export default function Layout() {
|
344
|
-
return <></>
|
345
|
-
}
|
346
|
-
```
|
347
|
-
|
348
|
-
在 SSR 场景,通常你需要在 `loader` 函数中使用 Node.js 核心包和依赖,对于非 Node.js 核心包,需要使用一个特殊约定的文件做重新导出,如使用 `fs-extra`:
|
349
|
-
|
350
|
-
```tsx
|
351
|
-
// routes/user/avatar.tsx
|
352
|
-
import { useLoaderData } from '@modern-js/runtime/router';
|
353
|
-
import { readFile } from './utils.server';
|
354
|
-
|
355
|
-
type ProfileData = { /* some type declarations */ }
|
356
|
-
|
357
|
-
export const loader = async(): ProfileData => {
|
358
|
-
const profile = await readFile('profile.json');
|
359
|
-
return profile;
|
360
|
-
}
|
361
|
-
|
362
|
-
export default function UserPage() {
|
363
|
-
const profileData = useLoaderData() as ProfileData;
|
364
|
-
return <div>{profileData}</div>;
|
365
|
-
}
|
366
|
-
|
367
|
-
// routes/user/utils.server.ts
|
368
|
-
export * from 'fs-extra';
|
369
|
-
```
|
370
|
-
|
371
|
-
|
372
264
|
### 错误用法
|
373
265
|
|
374
266
|
1. `loader` 中只能返回可序列化的数据,在 SSR 环境下,`loader` 函数的返回值会被序列化为 JSON 字符串,然后在客户端被反序列化为对象。因此,`loader` 函数中不能返回不可序列化的数据(如函数)。
|
@@ -379,31 +271,57 @@ export * from 'fs-extra';
|
|
379
271
|
|
380
272
|
```ts
|
381
273
|
// This won't work!
|
382
|
-
export
|
274
|
+
export default () => {
|
383
275
|
return {
|
384
276
|
user: {},
|
385
|
-
method: () => {
|
386
|
-
|
387
|
-
|
388
|
-
}
|
389
|
-
}
|
277
|
+
method: () => {},
|
278
|
+
};
|
279
|
+
};
|
390
280
|
```
|
391
281
|
|
392
282
|
2. Modern.js 会帮你调用 `loader` 函数,你不应该自己调用 `loader` 函数:
|
283
|
+
|
393
284
|
```ts
|
394
285
|
// This won't work!
|
395
|
-
export
|
286
|
+
export default async () => {
|
396
287
|
const res = fetch('https://api/user/profile');
|
397
288
|
return res.json();
|
398
289
|
};
|
399
290
|
|
291
|
+
import loader from './page.loader.ts';
|
400
292
|
export default function RouteComp() {
|
401
293
|
const data = loader();
|
402
294
|
}
|
403
295
|
```
|
404
296
|
|
405
|
-
3.
|
297
|
+
3. 不能从路由组件中引入 `loader` 文件,也不能从 `loader` 文件引入路由组件中的变量,如果需要共享类型的话,应该使用 `import type`
|
298
|
+
|
299
|
+
```ts
|
300
|
+
// Not allowed
|
301
|
+
// routes/layout.tsx
|
302
|
+
import { useLoaderData } from '@modern-js/runtime/router';
|
303
|
+
import { ProfileData } from './page.loader.ts'; // should use "import type" instead
|
304
|
+
|
305
|
+
export const fetch = wrapFetch(fetch);
|
306
|
+
|
307
|
+
export default function UserPage() {
|
308
|
+
const profileData = useLoaderData() as ProfileData;
|
309
|
+
return <div>{profileData}</div>;
|
310
|
+
}
|
311
|
+
|
312
|
+
// routes/layout.loader.ts
|
313
|
+
import { fetch } from './layout.tsx'; // should not be imported from the routing component
|
314
|
+
export type ProfileData = {
|
315
|
+
/* some types */
|
316
|
+
};
|
317
|
+
|
318
|
+
export default async (): Promise<ProfileData> => {
|
319
|
+
const res = await fetch('https://api/user/profile');
|
320
|
+
return await res.json();
|
321
|
+
};
|
322
|
+
```
|
406
323
|
|
324
|
+
4. 在服务端运行时,`loader` 函数会被打包为一个统一的 bundle,所以我们不推荐服务端的代码使用 `__filename` 和 `__dirname`。
|
407
325
|
|
408
326
|
## useLoader(旧版)
|
409
327
|
|
@@ -439,7 +357,7 @@ export default () => {
|
|
439
357
|
|
440
358
|
```html
|
441
359
|
<script>
|
442
|
-
window._SSR_DATA = {};
|
360
|
+
window._SSR_DATA = {};
|
443
361
|
</script>
|
444
362
|
```
|
445
363
|
|
@@ -456,4 +374,3 @@ Modern.js 在新版本中,设计了全新的 Loader 方案。新方案解决
|
|
456
374
|
:::note
|
457
375
|
详细 API 可以查看 [useLoader](/docs/apis/app/runtime/core/use-loader)。
|
458
376
|
:::
|
459
|
-
|
@@ -31,15 +31,16 @@ MODERN_ENV 的优先级高于 NODE_ENV。
|
|
31
31
|
function App() {
|
32
32
|
if (process.env.MODERN_TARGET === 'browser') {
|
33
33
|
console.log(window.innerHeight);
|
34
|
-
}
|
35
|
-
}
|
34
|
+
}
|
35
|
+
}
|
36
36
|
```
|
37
37
|
|
38
38
|
开发环境打包后,可以看到 SSR 产物和 CSR 产物如下:
|
39
39
|
|
40
40
|
```js title="dist/bundles/main.js"
|
41
41
|
function App() {
|
42
|
-
if (false) {
|
42
|
+
if (false) {
|
43
|
+
}
|
43
44
|
}
|
44
45
|
```
|
45
46
|
|
@@ -80,8 +81,8 @@ BAR=456
|
|
80
81
|
|
81
82
|
`.env` 文件遵循以下规则加载规则:
|
82
83
|
|
83
|
-
|
84
|
-
|
84
|
+
- `.env`:默认加载。
|
85
|
+
- `.env.{ MODERN_ENV | NODE_ENV }`:针对具体环境设置环境变量,会覆盖 `.env` 中的设置。
|
85
86
|
|
86
87
|
当需要根据环境使用不同的配置时,可以把环境变量定义到对应环境名称的 `.env` 文件中,并在启动项目时手动设置执行环境。例如使用以下命令启动项目时,将会加载 `.env` 和 `.env.staging`:
|
87
88
|
|
@@ -121,7 +122,7 @@ if (true) {
|
|
121
122
|
|
122
123
|
如果需要在代码中使用任意名称的环境变量,可以在 [`source.globalVars`](/docs/configure/app/source/global-vars) 配置指定, 例如:
|
123
124
|
|
124
|
-
```
|
125
|
+
```ts title="modern.config.ts"
|
125
126
|
export default defineConfig({
|
126
127
|
source: {
|
127
128
|
globalVars: {
|