@modern-js/main-doc 2.0.0-beta.1 → 2.0.0-beta.3
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/build.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/dev.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/lint.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/new.md +1 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/start.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/test.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/overview.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/core/bootstrap.md +17 -3
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/auto-actions.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/connect.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-app.md +2 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-store.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/handle-effect.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/model_.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-local-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-static-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-store.md +1 -23
- package/en/docusaurus-plugin-content-docs/current/components/command-tip.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/components/reduck-migration.md +1 -0
- package/en/docusaurus-plugin-content-docs/current/components/reduck-tip.md +5 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/asset-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/hmr.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/https.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/port.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/progress-bar.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/dev/start-url.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/experiments/lazy-compilation.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/app-icon.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/crossorigin.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/disable-html-folder.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/favicon.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/inject.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/meta.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/mount-id.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template-parameters.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/template.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title-by-entries.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/html/title.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/asset-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/assets-retry.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/charset.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/clean-dist-path.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/convert-to-rem.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/copy.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/css-module-local-ident-name.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/data-uri-limit.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-extract.md +12 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-module-extension.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-filename-hash.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-inline-runtime-chunk.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-minimize.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-source-map.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-ts-checker.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/dist-path.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-fallback.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-asset-manifest.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-css-module-tsdeclaration.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-scripts.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-inline-styles.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/enable-latest-decorators.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/externals.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/filename.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/legal-comments.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/override-browserslist.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/polyfill.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/svg-default-export.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/build-cache.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/bundle-analyze.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/chunk-split.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/print-file-size.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/profile.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-console.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/performance/remove-moment-locale.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/plugins.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/router.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/security/sri.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/alias.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/compile-js-data-uri.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/define.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/exclude.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/global-vars.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/include.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/module-scopes.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/pre-entry.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-extension-prefix.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/source/resolve-main-fields.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/autoprefixer.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/babel.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-extract.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/css-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/dev-server.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/html-plugin.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/inspector.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/less.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/minify-css.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/postcss.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/pug.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/sass.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/style-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/styled-components.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/swc.md +42 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/terser.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-checker.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/ts-loader.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack-chain.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/configure/app/tools/webpack.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/basic-features/builder.md +46 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/app.md +152 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/ejs.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/fs.md +54 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/git.md +49 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/handlebars.md +58 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/json.md +59 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/npm.md +49 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/develop.md +52 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/introduce.md +46 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/run-in-js.md +48 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/structure.md +87 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/common.md +106 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/module.md +39 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/monorepo.md +28 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/mwa.md +89 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/abstract.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addFile.md +52 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addHelper.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addManyFile.md +58 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addPartial.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/introduce.md +38 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/rmDir.md +24 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/rmFile.md +24 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +54 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateModernConfig.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.md +33 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.md +20 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/initGitRepo.md +16 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/isInGitRepo.md +16 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/afterForged.md +35 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/onForged.md +36 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/isFileExit.md +22 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/locale.md +17 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/readDir.md +22 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +57 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/setInput.md +42 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/setInputValue.md +30 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/type.md +65 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/introduce.md +91 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/createElement.md +33 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/createSubProject.md +35 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/enableFunc.md +44 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/introduce.md +15 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/npm/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/npm/install.md +18 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/develop.md +125 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/use.md +61 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/project.md +118 -0
- package/en/docusaurus-plugin-content-docs/current.json +57 -21
- package/package.json +3 -3
- package/scripts/config.ts +2 -2
- package/scripts/summary.en.json +1 -1
- package/scripts/summary.zh.json +1 -1
- package/zh/apis/app/commands/new.md +0 -3
- package/zh/apis/app/hooks/server/test.md +2 -2
- package/zh/apis/app/runtime/app/_category_.json +1 -1
- package/zh/apis/app/runtime/bff/_category_.json +1 -1
- package/zh/apis/app/runtime/core/_category_.json +1 -1
- package/zh/apis/app/runtime/core/bootstrap.md +17 -3
- package/zh/apis/app/runtime/model/_category_.json +1 -1
- package/zh/apis/app/runtime/model/create-app.md +1 -1
- package/zh/apis/app/runtime/model/use-store.md +1 -23
- package/zh/apis/app/runtime/router/_category_.json +1 -1
- package/zh/apis/app/runtime/ssr/_category_.json +1 -1
- package/zh/apis/app/runtime/testing/_category_.json +1 -1
- package/zh/apis/app/runtime/utility/_category_.json +1 -1
- package/zh/apis/app/runtime/web-server/_category_.json +1 -1
- package/zh/apis/app/runtime/web-server/hook.md +4 -4
- package/zh/apis/app/runtime/web-server/middleware.md +4 -4
- package/zh/components/reduck-migration.md +1 -0
- package/zh/configure/app/dev/asset-prefix.md +1 -1
- package/zh/configure/app/dev/hmr.md +1 -1
- package/zh/configure/app/dev/https.md +1 -1
- package/zh/configure/app/dev/port.md +1 -1
- package/zh/configure/app/dev/progress-bar.md +1 -1
- package/zh/configure/app/dev/start-url.md +1 -1
- package/zh/configure/app/experiments/_category_.json +4 -0
- package/zh/configure/app/experiments/lazy-compilation.md +1 -1
- package/zh/configure/app/html/_category_.json +4 -0
- package/zh/configure/app/html/app-icon.md +1 -1
- package/zh/configure/app/html/crossorigin.md +1 -1
- package/zh/configure/app/html/disable-html-folder.md +1 -1
- package/zh/configure/app/html/favicon-by-entries.md +1 -1
- package/zh/configure/app/html/favicon.md +1 -1
- package/zh/configure/app/html/inject-by-entries.md +1 -1
- package/zh/configure/app/html/inject.md +1 -1
- package/zh/configure/app/html/meta-by-entries.md +1 -1
- package/zh/configure/app/html/meta.md +1 -1
- package/zh/configure/app/html/mount-id.md +1 -1
- package/zh/configure/app/html/template-by-entries.md +1 -1
- package/zh/configure/app/html/template-parameters-by-entries.md +1 -1
- package/zh/configure/app/html/template-parameters.md +1 -1
- package/zh/configure/app/html/template.md +1 -1
- package/zh/configure/app/html/title-by-entries.md +1 -1
- package/zh/configure/app/html/title.md +1 -1
- package/zh/configure/app/output/asset-prefix.md +1 -1
- package/zh/configure/app/output/assets-retry.md +1 -1
- package/zh/configure/app/output/charset.md +1 -1
- package/zh/configure/app/output/clean-dist-path.md +1 -1
- package/zh/configure/app/output/convert-to-rem.md +1 -1
- package/zh/configure/app/output/copy.md +1 -1
- package/zh/configure/app/output/css-module-local-ident-name.md +1 -1
- package/zh/configure/app/output/data-uri-limit.md +1 -1
- package/zh/configure/app/output/disable-css-extract.md +12 -0
- package/zh/configure/app/output/disable-css-module-extension.md +1 -1
- package/zh/configure/app/output/disable-filename-hash.md +1 -1
- package/zh/configure/app/output/disable-inline-runtime-chunk.md +1 -1
- package/zh/configure/app/output/disable-minimize.md +1 -1
- package/zh/configure/app/output/disable-source-map.md +1 -1
- package/zh/configure/app/output/disable-ts-checker.md +1 -1
- package/zh/configure/app/output/dist-path.md +1 -1
- package/zh/configure/app/output/enable-asset-fallback.md +1 -1
- package/zh/configure/app/output/enable-asset-manifest.md +1 -1
- package/zh/configure/app/output/enable-css-module-tsdeclaration.md +1 -1
- package/zh/configure/app/output/enable-inline-scripts.md +1 -1
- package/zh/configure/app/output/enable-inline-styles.md +1 -1
- package/zh/configure/app/output/enable-latest-decorators.md +1 -1
- package/zh/configure/app/output/externals.md +1 -1
- package/zh/configure/app/output/filename.md +1 -1
- package/zh/configure/app/output/legal-comments.md +1 -1
- package/zh/configure/app/output/override-browserslist.md +1 -1
- package/zh/configure/app/output/polyfill.md +1 -1
- package/zh/configure/app/output/ssg.md +118 -114
- package/zh/configure/app/output/svg-default-export.md +1 -1
- package/zh/configure/app/performance/_category_.json +4 -0
- package/zh/configure/app/performance/build-cache.md +1 -1
- package/zh/configure/app/performance/bundle-analyze.md +1 -1
- package/zh/configure/app/performance/chunk-split.md +1 -1
- package/zh/configure/app/performance/print-file-size.md +1 -1
- package/zh/configure/app/performance/profile.md +1 -1
- package/zh/configure/app/performance/remove-console.md +1 -1
- package/zh/configure/app/performance/remove-moment-locale.md +1 -1
- package/zh/configure/app/plugins.md +1 -1
- package/zh/configure/app/runtime/state.md +13 -0
- package/zh/configure/app/security/_category_.json +4 -0
- package/zh/configure/app/security/sri.md +1 -1
- package/zh/configure/app/server/ssr.md +0 -2
- package/zh/configure/app/source/alias.md +1 -1
- package/zh/configure/app/source/compile-js-data-uri.md +1 -1
- package/zh/configure/app/source/define.md +1 -1
- package/zh/configure/app/source/exclude.md +1 -1
- package/zh/configure/app/source/global-vars.md +1 -1
- package/zh/configure/app/source/include.md +1 -1
- package/zh/configure/app/source/module-scopes.md +1 -1
- package/zh/configure/app/source/pre-entry.md +1 -1
- package/zh/configure/app/source/resolve-extension-prefix.md +1 -1
- package/zh/configure/app/source/resolve-main-fields.md +1 -1
- package/zh/configure/app/tools/autoprefixer.md +1 -1
- package/zh/configure/app/tools/babel.md +1 -1
- package/zh/configure/app/tools/css-extract.md +1 -1
- package/zh/configure/app/tools/css-loader.md +1 -1
- package/zh/configure/app/tools/dev-server.md +1 -1
- package/zh/configure/app/tools/html-plugin.md +1 -1
- package/zh/configure/app/tools/inspector.md +1 -1
- package/zh/configure/app/tools/less.md +1 -1
- package/zh/configure/app/tools/minify-css.md +1 -1
- package/zh/configure/app/tools/postcss.md +1 -1
- package/zh/configure/app/tools/pug.md +1 -1
- package/zh/configure/app/tools/sass.md +1 -1
- package/zh/configure/app/tools/style-loader.md +1 -1
- package/zh/configure/app/tools/styled-components.md +1 -1
- package/zh/configure/app/tools/swc.md +42 -0
- package/zh/configure/app/tools/terser.md +1 -1
- package/zh/configure/app/tools/ts-checker.md +1 -1
- package/zh/configure/app/tools/ts-loader.md +1 -1
- package/zh/configure/app/tools/webpack-chain.md +1 -1
- package/zh/configure/app/tools/webpack.md +1 -1
- package/zh/guides/advanced-features/bff/_category_.json +5 -1
- package/zh/guides/advanced-features/bff/bff-proxy.md +5 -3
- package/zh/guides/advanced-features/bff/frameworks.md +72 -51
- package/zh/guides/advanced-features/bff/function.md +16 -30
- package/zh/guides/advanced-features/bff/index.md +20 -0
- package/zh/guides/advanced-features/bff/type.md +43 -0
- package/zh/guides/advanced-features/custom-app.md +69 -1
- package/zh/guides/advanced-features/ssg.md +74 -63
- package/zh/guides/advanced-features/ssr.md +74 -11
- package/zh/guides/advanced-features/web-server.md +21 -110
- package/zh/guides/basic-features/builder.md +46 -0
- package/zh/guides/basic-features/css/_category_.json +1 -1
- package/zh/guides/basic-features/css/less-sass.md +1 -14
- package/zh/guides/basic-features/data-fetch.md +62 -1
- package/zh/guides/basic-features/env-vars.md +122 -41
- package/zh/guides/basic-features/routes.md +264 -0
- package/zh/guides/concept/entries.md +112 -0
- package/zh/guides/concept/lifecycle.md +10 -0
- package/zh/guides/get-started/quick-start.md +199 -1
- package/zh/guides/get-started/upgrade.md +75 -1
- package/zh/guides/topic-detail/framework-plugin/extend.md +3 -4
- package/zh/{apis/app/runtime/plugin/hook-api.md → guides/topic-detail/framework-plugin/hook-list.md} +42 -135
- package/zh/{apis/app/runtime/plugin → guides/topic-detail/framework-plugin}/hook.md +2 -3
- package/zh/guides/topic-detail/framework-plugin/implement.md +21 -10
- package/zh/guides/topic-detail/framework-plugin/introduction.md +49 -0
- package/{en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin → zh/guides/topic-detail/framework-plugin}/plugin-api.md +3 -4
- package/zh/guides/topic-detail/framework-plugin/relationship.md +2 -3
- package/zh/guides/topic-detail/generator/codesmith/api/_category_.json +4 -0
- package/zh/guides/topic-detail/generator/codesmith/api/app.md +152 -0
- package/zh/guides/topic-detail/generator/codesmith/api/ejs.md +56 -0
- package/zh/guides/topic-detail/generator/codesmith/api/fs.md +54 -0
- package/zh/guides/topic-detail/generator/codesmith/api/git.md +48 -0
- package/zh/guides/topic-detail/generator/codesmith/api/handlebars.md +56 -0
- package/zh/guides/topic-detail/generator/codesmith/api/json.md +58 -0
- package/zh/guides/topic-detail/generator/codesmith/api/npm.md +45 -0
- package/zh/guides/topic-detail/generator/codesmith/develop.md +52 -0
- package/zh/guides/topic-detail/generator/codesmith/introduce.md +42 -1
- package/zh/guides/topic-detail/generator/codesmith/run-in-js.md +48 -0
- package/zh/guides/topic-detail/generator/codesmith/structure.md +86 -0
- package/zh/guides/topic-detail/generator/config/mwa.md +4 -8
- package/zh/guides/topic-detail/generator/plugin/api/file/addFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/addHelper.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/addPartial.md +2 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/introduce.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/rmDir.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/rmFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +3 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/updateModernConfig.md +2 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/hook/afterForged.md +3 -3
- package/zh/guides/topic-detail/generator/plugin/api/hook/onForged.md +3 -3
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/type.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/createElement.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/createSubProject.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/enableFunc.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/npm/install.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/develop.md +11 -7
- package/zh/guides/topic-detail/model/quick-start.md +4 -0
- package/zh/guides/topic-detail/monorepo/sub-project-interface.md +0 -2
- package/zh/tutorials/first-app/c01-getting-started/1.1-prerequisites.md +2 -2
- package/zh/tutorials/first-app/c01-getting-started/1.2-minimal-mwa.md +2 -2
- package/zh/tutorials/first-app/c01-getting-started/1.4-enable-ssr.md +5 -2
- package/zh/tutorials/first-app/c02-generator-and-studio/2.1-generator.md +0 -8
- package/zh/tutorials/first-app/c02-generator-and-studio/2.2-boilerplates.md +12 -6
- package/zh/tutorials/first-app/c02-generator-and-studio/2.3-configuration.md +2 -4
- package/zh/tutorials/first-app/c03-ide/3.1-setting-up.md +1 -1
- package/zh/tutorials/first-app/c03-ide/3.2-hints-in-ide.md +44 -50
- package/zh/tutorials/first-app/c03-ide/3.3-autofix-in-ide.md +1 -1
- package/zh/tutorials/first-app/c03-ide/3.4-autofix-in-cli.md +4 -4
- package/zh/tutorials/first-app/c04-es6-plus-and-ts/4.1-use-es6-plus.md +8 -21
- package/zh/tutorials/first-app/c04-es6-plus-and-ts/4.2-use-typescript.md +37 -13
- package/zh/tutorials/first-app/c05-component/5.1-use-ui-library.md +3 -13
- package/zh/tutorials/first-app/c05-component/5.2-use-standalone-component.md +1 -21
- package/zh/tutorials/first-app/c06-css-and-component/6.1-css-in-js.md +9 -9
- package/zh/tutorials/first-app/c06-css-and-component/6.2-utility-class.md +9 -14
- package/zh/tutorials/first-app/c06-css-and-component/6.3-postcss.md +7 -7
- package/zh/tutorials/first-app/c06-css-and-component/6.4-design-system.md +1 -1
- package/zh/tutorials/first-app/c06-css-and-component/6.5-storybook.md +2 -2
- package/zh/tutorials/first-app/c06-css-and-component/6.6-testing.md +8 -17
- package/zh/tutorials/first-app/c07-app-entry/7.1-intro.md +24 -19
- package/zh/tutorials/first-app/c07-app-entry/7.2-add-entry-in-cli.md +31 -35
- package/zh/tutorials/first-app/c07-app-entry/7.3-manage-entries-by-hand.md +4 -9
- package/zh/tutorials/first-app/c08-client-side-routing/8.1-code-based-routing.md +66 -63
- package/zh/tutorials/first-app/c09-bff/9.2-enable-bff.md +35 -33
- package/zh/tutorials/first-app/c09-bff/9.3-fetch-bff.md +28 -102
- package/zh/tutorials/first-app/c10-model/10.1-application-architecture.md +4 -6
- package/zh/tutorials/first-app/c10-model/10.2-add-model.md +3 -3
- package/zh/tutorials/first-app/c10-model/10.3-use-model.md +21 -20
- package/zh/tutorials/first-app/c10-model/10.4-testing.md +2 -2
- package/zh/tutorials/first-app/c11-container/11.1-use-model-with-app-state.md +34 -68
- package/zh/tutorials/first-app/c11-container/11.2-add-container.md +40 -37
- package/zh/tutorials/first-app/c11-container/11.3-use-loader.md +6 -4
- package/zh/tutorials/first-app/c11-container/11.4-testing.md +2 -2
- package/zh/tutorials/foundations/introduction.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/default-alias.md +0 -25
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/env.md +0 -72
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/_category_.json +0 -4
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/abstract.md +0 -26
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/hook-api.md +0 -896
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/plugin/hook.md +0 -170
- package/zh/apis/app/runtime/default-alias.md +0 -23
- package/zh/apis/app/runtime/env.md +0 -70
- package/zh/apis/app/runtime/plugin/_category_.json +0 -4
- package/zh/apis/app/runtime/plugin/abstract.md +0 -26
- package/zh/apis/app/runtime/plugin/plugin-api.md +0 -117
- package/zh/components/deploy.md +0 -60
- package/zh/components/dev-ide.md +0 -1
- package/zh/components/entry-name.md +0 -15
- package/zh/components/env-prepare.md +0 -1
- package/zh/components/launch-bff-choices.md +0 -6
- package/zh/guides/advanced-features/bff/bff-server.md +0 -142
- package/zh/guides/advanced-features/typescript.md +0 -4
- package/zh/guides/basic-features/image.md +0 -43
- package/zh/guides/concept/integrated.md +0 -4
- package/zh/guides/concept/solutions.md +0 -4
- package/zh/guides/topic-detail/compile-speed.md +0 -182
- package/zh/guides/topic-detail/framework-plugin/abstract.md +0 -27
- package/zh/guides/troubleshooting/compile.md +0 -379
- package/zh/tutorials/first-app/c08-client-side-routing/8.2-file-based-routing.md +0 -318
@@ -1,170 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 2
|
3
|
-
---
|
4
|
-
|
5
|
-
# Hook 模型
|
6
|
-
|
7
|
-
首先介绍一下 Modern.js 的基础的插件系统中的一些内容,包括 Hook 模型的工作方式、各个 Hook 模型的运行模式、Manager 的工作模式。
|
8
|
-
|
9
|
-
每种 Hook 模型都是独立的,可以独立管理运行函数。
|
10
|
-
|
11
|
-
## 基础工作方式
|
12
|
-
|
13
|
-
先以 Pipeline 为例,简单介绍一下 Hook 模型的工作方式。先看一个简单的例子:
|
14
|
-
|
15
|
-
```ts
|
16
|
-
import { createPipeline } from '@modern-js/plugin'
|
17
|
-
|
18
|
-
// 1. 创建
|
19
|
-
const pipeline = createPipeline<number, number>()
|
20
|
-
|
21
|
-
// 2. 添加函数
|
22
|
-
pipeline.use((count, next) => {
|
23
|
-
return next(count + 1)
|
24
|
-
})
|
25
|
-
pipeline.use((count, next) => {
|
26
|
-
return count * 2
|
27
|
-
})
|
28
|
-
|
29
|
-
// 3. 执行
|
30
|
-
pipeline.run(1) // 4
|
31
|
-
pipeline.run(5) // 12
|
32
|
-
```
|
33
|
-
|
34
|
-
在这个例子中,创建了一个 `Pipeline<number, number>` 类型的 Pipeline(L3),这意味着运行它的时候,你需要传入一个 `number`,然后你会得到一个 `number`,而这个模型管理的函数的类型是:
|
35
|
-
|
36
|
-
```ts
|
37
|
-
(count: number, next: (nextCount: number) => number) => number
|
38
|
-
```
|
39
|
-
|
40
|
-
这里全是 `number`,是因为我们创建的是 `Pipeline<number, number>` ,如果创建的是 `Pipeline<number, string>` 则运行它入参是 `number`,返回值是 `string`,对应管理的函数的类型会是:
|
41
|
-
|
42
|
-
```ts
|
43
|
-
(count: number, next: (nextCount: number) => string) => string
|
44
|
-
```
|
45
|
-
|
46
|
-
|
47
|
-
创建好 Pipeline 之后,可以通过 `use` 添加函数(L5、L8),需要注意的是,添加的顺序就是他们默认的运行顺序,在这些函数中,你可以对 `count` 进行处理、返回一个值,如果你调用了 `next` 函数,则会运行后面的函数,即如果你添加了三个函数: `A`、`B`、`C`,如果你在 `A` 中调用 `next` 那么就会运行 `B`,同样的,如果你在 `B` 中调用 `next` 那么就会运行 `C`,而在上面的例子中,添加的第一个函数(L5)就运行了 `next`,所以这里就会运行第二个函数(L8),并且运行的返回值就是 第二个函数的返回值,如果在第一个函数中没有调用 `next`,直接返回,例如:
|
48
|
-
|
49
|
-
```ts
|
50
|
-
import { createPipeline } from '@modern-js/plugin'
|
51
|
-
|
52
|
-
// 1. 创建
|
53
|
-
const pipeline = createPipeline<number, number>()
|
54
|
-
|
55
|
-
// 2. 添加函数
|
56
|
-
pipeline.use((count, next) => {
|
57
|
-
return count + 1
|
58
|
-
})
|
59
|
-
pipeline.use((count, next) => {
|
60
|
-
return count * 2
|
61
|
-
})
|
62
|
-
|
63
|
-
// 3. 执行
|
64
|
-
pipeline.run(1) // 2
|
65
|
-
pipeline.run(5) // 6
|
66
|
-
```
|
67
|
-
|
68
|
-
则在运行 Pipeline 的时候就不会运行第二个函数,那么 Pipeline 的运行结果则就是第一个函数的返回值。
|
69
|
-
|
70
|
-
最后,运行 Pipeline 的方式也显而易见就是调用 `pipeline.run` 。
|
71
|
-
|
72
|
-
## 不同 Hook 模型的区别
|
73
|
-
|
74
|
-
上面这部分就是 Pipeline 整体的一个工作模式的描述,其他的 Hook 模型的工作模式基本也是这样,主要的区别点,是函数类型、执行顺序,参数。
|
75
|
-
|
76
|
-
### Pipeline
|
77
|
-
|
78
|
-
上面的例子就是以 Pipeline 为例描述的,这里就不赘述了,在 Pipeline 这个大类中,提供了两个小类: Sync 和 Async,顾名思义,它们的区别就是管理的函数的类型是 Sync 的还是 Async 的。
|
79
|
-
|
80
|
-
:::info
|
81
|
-
当 Pipeline 中没有函数或者所有函数都调用了 `next` 函数,则就需要在运行的时候提供:
|
82
|
-
|
83
|
-
```ts
|
84
|
-
pipeline({}, {
|
85
|
-
onLast: () => {
|
86
|
-
// do something
|
87
|
-
}
|
88
|
-
})
|
89
|
-
```
|
90
|
-
:::
|
91
|
-
|
92
|
-
### Waterfall
|
93
|
-
|
94
|
-
这种模型顾名思义,他的特点就是参数的顺序递交,即前面一个函数的返回值,将会成为下一个函数的入参,我们也用一个例子来看一下:
|
95
|
-
|
96
|
-
```ts
|
97
|
-
import { createWaterfall } from '@modern-js/plugin'
|
98
|
-
|
99
|
-
// 1. 创建
|
100
|
-
const waterfall = createWaterfall<number>()
|
101
|
-
|
102
|
-
// 2. 添加函数
|
103
|
-
waterfall.use((count) => {
|
104
|
-
return count + 1
|
105
|
-
})
|
106
|
-
waterfall.use((count) => {
|
107
|
-
return count * 2
|
108
|
-
})
|
109
|
-
|
110
|
-
// 3. 执行
|
111
|
-
waterfall.run(1) // 4
|
112
|
-
waterfall.run(5) // 12
|
113
|
-
```
|
114
|
-
|
115
|
-
这个例子中,创建了一个类型为 `Waterfall<number> `,即这个模型执行的入参和返回值是一样的,这个例子中都是 `number`,而它管理的函数的类型是:
|
116
|
-
|
117
|
-
```ts
|
118
|
-
(count: number) => number
|
119
|
-
```
|
120
|
-
|
121
|
-
可能简单看这个例子感觉和上面的 Pipeline 功能一样,那需要注意的是,首先这里 Waterfall 管理的函数没有next 函数作为第二个参数,所以它无法在函数内部通过调用 next 来先运行之后添加的函数,从而修改运行的顺序,其次这里的运行的入参的类型和返回值的类型必须是一样的(而 Pipeline 可以不一样)。
|
122
|
-
|
123
|
-
同样的,在 Waterfall 这个大类中,也提供了 Sync 和 Async 的小类,分别对应 Sync 和 Async 的函数。
|
124
|
-
|
125
|
-
### Workflow
|
126
|
-
|
127
|
-
这种 Hook 模型与上面两种 Hook 模型的区别是,没有那么强的前后参数返回值递交的概念,在这个模型中,每个函数都是基于同样的入参,相对独立运行的,通过一个例子简单看一下:
|
128
|
-
|
129
|
-
```ts
|
130
|
-
import { createWorkflow } from '@modern-js/plugin'
|
131
|
-
|
132
|
-
// 1. 创建
|
133
|
-
const workflow = createWorkflow <number, number>()
|
134
|
-
|
135
|
-
// 2. 添加函数
|
136
|
-
workflow.use((count) => {
|
137
|
-
return count + 1
|
138
|
-
})
|
139
|
-
workflow.use((count) => {
|
140
|
-
return count * 2
|
141
|
-
})
|
142
|
-
|
143
|
-
// 3. 执行
|
144
|
-
workflow.run(1) // [2, 2]
|
145
|
-
workflow.run(5) // [6, 10]
|
146
|
-
```
|
147
|
-
|
148
|
-
在这个例子中,添加了两个函数,所以运行的结果就是这两个函数运行的结果形成的一个数组。
|
149
|
-
|
150
|
-
虽然这种模型中没有那么强的前后参数返回值递交的概念,但依旧有执行顺序的区别,在 Workflow 这个大类中,提供了三个小类: Sync、Async、Parallel。他们之间的区别就是函数的执行顺序,当然默认的都是按照添加顺序执行,而在 Sync、Async 则是强制按照添加顺序执行,而 Parallel 则是 Async 模式的一个变体,即它使用的是 `Promise.all` 来执行所有函数,而 Async 则会 `await` 前面的函数运行结束。
|
151
|
-
|
152
|
-
## Hook 模型对比
|
153
|
-
|
154
|
-
<div style={{ width: "100%", overflowX: "scroll" }}>
|
155
|
-
<div style={{ width: "150%" }}>
|
156
|
-
|
157
|
-
||函数类型|执行顺序|函数参数来源|执行返回值来源|倾向处理的任务类型|函数 TS 类型|
|
158
|
-
|-----|-----|-----|-----|----|----|----|
|
159
|
-
|Pipeline|Sync|默认执行第一个添加的函数,可以通过 next 调用之后添加的函数|第一个函数的参数来源是运行的参数,之后的函数的参数来源是,前一个函数向 next 函数传递的参数|第一个函数的返回值|<ul><li>需要修改初始参数</li><li>需要修改函数执行顺序</li></ul>|`(input: I, next: Next<I, O>) => O`|
|
160
|
-
|AsyncPipeline|Sync/Async|默认执行第一个添加的函数,可以通过 next 调用之后添加的函数|第一个函数的参数来源是运行的参数,之后的函数的参数来源是,前一个函数向 next 函数传递的参数|第一个函数的返回值|<ul><li>需要修改初始参数</li><li>需要修改函数执行顺序</li></ul>|`(input: I, next: AsyncNext<I, O>) => O | Promise<O>`|
|
161
|
-
|WaterFall|Sync|一直顺序执行|第一个函数的参数来源是运行的参数,之后的函数的参数来源是,前一个函数的返回值|最后一个函数的返回值|<ul><li>需要修改初始参数</li><li>不需要修改函数执行顺序</li></ul>|`(I: I) => I`|
|
162
|
-
|AsyncWaterFall|Sync/Async|一直顺序执行|第一个函数的参数来源是运行的参数,之后的函数的参数来源是,前一个函数的返回值|最后一个函数的返回值|<ul><li>需要修改初始参数</li><li>不需要修改函数执行顺序</li></ul>|`(I: I) => I | Promise<I>`|
|
163
|
-
|Workflow|Sync|一直顺序执行|所有函数的入参都是运行的参数|所有函数返回值形成的数组|<ul><li>不需要修改初始参数</li><li>不需要修改函数执行顺序</li></ul>|`(I: I) => O`|
|
164
|
-
|AsyncWorkflow|Sync/Async|一直顺序执行|所有函数的入参都是运行的参数|所有函数返回值形成的数组|<ul><li>不需要修改初始参数</li><li>不需要修改函数执行顺序</li></ul>|`(I: I) => O | Promise<O>`|
|
165
|
-
|ParallelWorkFlow|Sync/Async|异步执行|所有函数的入参都是运行的参数|所有函数返回值形成的数组|<ul><li>不需要修改初始参数</li><li>不关心执行顺序</li></ul>|`(I: I) => O | Promise<O>`|
|
166
|
-
|
167
|
-
</div>
|
168
|
-
</div>
|
169
|
-
|
170
|
-
Workflow、Waterfall 其实都是 Pipeline 的变体,Pipeline 可以通过特定的写法来实现 Workflow、Waterfall ,但都较为麻烦,有许多隐形的约定,为了方便使用,提供了这两种变体来满足这种特殊场景。
|
@@ -1,23 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 1
|
3
|
-
title: 默认别名
|
4
|
-
---
|
5
|
-
|
6
|
-
Modern.js 推荐通过别名的方式引用源码,其中包含 3 种默认别名:
|
7
|
-
- `@/`:等价于引用项目根目录 `src/*` 下的文件。
|
8
|
-
- `@api/`:等价于引用项目根目录下 `api/*` 下的文件(需要先开启 BFF 功能)。
|
9
|
-
- `@shared/`:等价于引用项目根目录下 `shared/*` 下的文件。
|
10
|
-
|
11
|
-
:::tip 提示
|
12
|
-
- 除了以下默认别名,开发者可以在 `modern.config.js` 中自定义别名,详见[如何配置别名](/docs/configure/app/source/alias)。
|
13
|
-
:::
|
14
|
-
|
15
|
-
## 示例
|
16
|
-
下面的例子展示了如何通过默认别名引用函数。
|
17
|
-
```tsx
|
18
|
-
import { hello } from '@/common/utils';
|
19
|
-
|
20
|
-
hello();
|
21
|
-
|
22
|
-
```
|
23
|
-
引用 `@/common/utils` 相当于引用 `src/common/utils`。
|
@@ -1,70 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 1
|
3
|
-
title: 环境变量
|
4
|
-
---
|
5
|
-
|
6
|
-
Modern.js 内置了对环境变量的支持,包含内置的环境变量和自定义的环境变量。
|
7
|
-
|
8
|
-
## 内置的环境变量
|
9
|
-
|
10
|
-
### NODE_ENV
|
11
|
-
|
12
|
-
表示当前的执行环境,是**只读的**的环境变量,其值在不同的执行命令下具有不同的值:
|
13
|
-
|
14
|
-
- `production`:执行 `modern build`、`modern preview` 命令时的默认值。
|
15
|
-
- `test`:执行 `modern test` 命令时的默认值。
|
16
|
-
- `development`:执行 `modern dev` 命令时的默认值,同时也是其他所有情况下的默认值。
|
17
|
-
|
18
|
-
### MODERN_ENV
|
19
|
-
|
20
|
-
用于设置当前的执行环境,除了上述 NODE_ENV 对应的值之外,这里支持自定义环境名称,比如 `staging`、`boe` 等,Modern.js 会根据该环境变量对应的加载 env.{process.env.MODERN_ENV} 文件中设置的环境变量值。
|
21
|
-
|
22
|
-
当需要通过环境名称使用不同的配置时,可以把环境变量定义到对应的环境名称的 env 文件中。
|
23
|
-
|
24
|
-
MODERN_ENV 的优先级高于 NODE_ENV。
|
25
|
-
|
26
|
-
## 自定义环境变量
|
27
|
-
|
28
|
-
Modern.js 支持自定义的环境变量,以 `MODERN_` 开头的环境变量可以在代码中直接使用。
|
29
|
-
|
30
|
-
如果需要自动以任意名称的环境变量,需要在 [`source.define`](/docs/configure/app/source/define) 配置中声明后使用。
|
31
|
-
|
32
|
-
## 定义环境变量
|
33
|
-
|
34
|
-
环境变量支持通过 `shell` 和 `.env` 文件两种方式指定。
|
35
|
-
|
36
|
-
### 通过 `shell` 指定
|
37
|
-
|
38
|
-
在命令前添加自定义环境变量:
|
39
|
-
|
40
|
-
```shell
|
41
|
-
REACT_APP_FOO=123 BAR=456 pnpm run dev
|
42
|
-
```
|
43
|
-
|
44
|
-
### 通过 `.env` 文件指定
|
45
|
-
|
46
|
-
在项目根目录创建 `.env` 文件,其中添加自定义环境变量:
|
47
|
-
|
48
|
-
```env
|
49
|
-
REACT_APP_FOO=123
|
50
|
-
BAR=456
|
51
|
-
```
|
52
|
-
|
53
|
-
.env 文件支持后缀名后 NODE_ENV 或 MODERN_ENV 定义的环境名称,如 `.env.development`,可根据项目需求进行定义。Modern.js 会根据环境名称变量值读取对应的 env 文件。
|
54
|
-
|
55
|
-
## 使用环境变量
|
56
|
-
|
57
|
-
### JS/TS 代码内使用
|
58
|
-
|
59
|
-
通过 `process.env.*` 直接获取环境变量。
|
60
|
-
|
61
|
-
```js
|
62
|
-
console.log(process.env.NODE_ENV);
|
63
|
-
// "development"
|
64
|
-
```
|
65
|
-
|
66
|
-
### HTML 代码片段使用
|
67
|
-
|
68
|
-
```html title="config/html/head.ejs"
|
69
|
-
<meta name="env" content="<%=process.env.NODE_ENV %>" />
|
70
|
-
```
|
@@ -1,26 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 1
|
3
|
-
---
|
4
|
-
|
5
|
-
# 概览
|
6
|
-
|
7
|
-
Modern.js 的基础的插件系统中主要分为三个部分:Hook 模型(Pipeline、Workflow、Waterfall)、 Hook 模型的管理器(Manager),上下文共享机制。
|
8
|
-
|
9
|
-
其中的 Hook 模型是用于管理运行一系列相同模型(形状)函数的管理工具,目前提供了三个大类,7个小类:
|
10
|
-
|
11
|
-
- Pipeline
|
12
|
-
- Sync
|
13
|
-
- Async
|
14
|
-
- Waterfall
|
15
|
-
- Sync
|
16
|
-
- Async
|
17
|
-
- Workflow
|
18
|
-
- Sync
|
19
|
-
- Async
|
20
|
-
- Parallel(Async)
|
21
|
-
|
22
|
-
它们之间的区别是他们所管理的函数的运行模式的不同。不同的地方会在下面具体分析介绍。
|
23
|
-
|
24
|
-
Hook 模型的管理器(Manager),顾名思义就是用来管理上面提到的那些 Hook 模型,添加至同一个 Manager 可以使用同一个 Runner 对象(包含所有 Hook 的执行函数)来运行,也共享同一个上下文环境。而 Modern.js 的基础插件系统中的插件就是针对 Manager 来说的,是一个拥有属性、插件 Hook 函数的对象。
|
25
|
-
|
26
|
-
基于上面的工具(Hook 模型 + Manager),在 Modern.js 中主要构建了三套插件模型:CLI、Runtime、Server。其中 CLI 是 Modern.js 中主要的运行流程控制模型,Modern.js 中的各种工程方案(应用工程方案、模块工程方案、Monorepo 工程方案)都是主要通过这一套模型运行的。而 Runtime 则主要负责的是 React 路由组件和元素的处理(Component 和 Element)和渲染(包括服务器端渲染和客户端渲染)。而 Server 则是针对 Server 运行时的这个阶段的生命周期运行和特殊信息收集。其中 Runtime 和 Server 的运行都是在 CLI 中触发的。
|
@@ -1,117 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 5
|
3
|
-
---
|
4
|
-
|
5
|
-
# Plugin API
|
6
|
-
|
7
|
-
插件的 setup 函数会接收一个 api 入参,你可以调用 api 上提供的一些方法来获取到配置、应用上下文等信息。
|
8
|
-
|
9
|
-
```ts
|
10
|
-
import type { CliPlugin } from '@modern-js/core';
|
11
|
-
|
12
|
-
export default (): CliPlugin => ({
|
13
|
-
name: 'my-plugin',
|
14
|
-
|
15
|
-
setup(api) {
|
16
|
-
// 获取应用原始配置
|
17
|
-
const config = api.useConfigContext();
|
18
|
-
// 获取应用运行上下文
|
19
|
-
const appContext = api.useAppContext();
|
20
|
-
// 获取解析之后的最终配置
|
21
|
-
const resolvedConfig = api.useResolvedConfigContext();
|
22
|
-
},
|
23
|
-
});
|
24
|
-
```
|
25
|
-
|
26
|
-
## API
|
27
|
-
|
28
|
-
### useConfigContext
|
29
|
-
|
30
|
-
用于获取应用原始配置。
|
31
|
-
|
32
|
-
```ts
|
33
|
-
const useConfigContext: () => UserConfig
|
34
|
-
|
35
|
-
interface UserConfig {
|
36
|
-
source?: SourceConfig;
|
37
|
-
output?: OutputConfig;
|
38
|
-
server?: ServerConfig;
|
39
|
-
dev?: DevConfig;
|
40
|
-
deploy?: DeployConfig;
|
41
|
-
tools?: ToolsConfig;
|
42
|
-
plugins?: PluginConfig;
|
43
|
-
runtime?: RuntimeConfig;
|
44
|
-
runtimeByEntries?: RuntimeByEntriesConfig;
|
45
|
-
}
|
46
|
-
```
|
47
|
-
|
48
|
-
具体配置字段的意义请参考【[配置](/docs/configure/app/source/alias)】。
|
49
|
-
|
50
|
-
### useAppContext
|
51
|
-
|
52
|
-
用于获取应用运行上下文。
|
53
|
-
|
54
|
-
```ts
|
55
|
-
const useAppContext: () => IAppContext
|
56
|
-
|
57
|
-
interface IAppContext {
|
58
|
-
appDirectory: string;
|
59
|
-
configFile: string | false;
|
60
|
-
ip?: string;
|
61
|
-
port?: number;
|
62
|
-
distDirectory: string;
|
63
|
-
packageName: string;
|
64
|
-
srcDirectory: string;
|
65
|
-
sharedDirectory: string;
|
66
|
-
nodeModulesDirectory: string;
|
67
|
-
internalDirectory: string;
|
68
|
-
plugins: {
|
69
|
-
cli?: any;
|
70
|
-
server?: any;
|
71
|
-
}[];
|
72
|
-
entrypoints: Entrypoint[];
|
73
|
-
serverRoutes: ServerRoute[];
|
74
|
-
htmlTemplates: HtmlTemplates;
|
75
|
-
}
|
76
|
-
```
|
77
|
-
|
78
|
-
### useResolvedConfigContext
|
79
|
-
|
80
|
-
用于获取解析之后的最终配置。
|
81
|
-
|
82
|
-
```ts
|
83
|
-
const useResolvedConfigContext: () => NormalizedConfig
|
84
|
-
|
85
|
-
interface NormalizedConfig {
|
86
|
-
source: NormalizedSourceConfig;
|
87
|
-
output: OutputConfig;
|
88
|
-
server: ServerConfig;
|
89
|
-
dev: DevConfig;
|
90
|
-
deploy: DeployConfig;
|
91
|
-
tools: NormalizedToolsConfig;
|
92
|
-
plugins: PluginConfig;
|
93
|
-
runtime: RuntimeConfig;
|
94
|
-
runtimeByEntries?: RuntimeByEntriesConfig;
|
95
|
-
_raw: UserConfig
|
96
|
-
}
|
97
|
-
```
|
98
|
-
|
99
|
-
具体配置字段的意义请参考【[配置](/docs/configure/app/source/alias)】。
|
100
|
-
|
101
|
-
### useHookRunners
|
102
|
-
|
103
|
-
用于获取 Hooks 的执行器,并触发特定的 Hook 执行。
|
104
|
-
|
105
|
-
```ts
|
106
|
-
import type { CliPlugin } from '@modern-js/core';
|
107
|
-
|
108
|
-
export default (): CliPlugin => ({
|
109
|
-
name: 'my-plugin',
|
110
|
-
|
111
|
-
async setup(api) {
|
112
|
-
const hookRunners = api.useHookRunners();
|
113
|
-
// 触发 afterBuild Hook
|
114
|
-
await hookRunners.afterBuild();
|
115
|
-
},
|
116
|
-
});
|
117
|
-
```
|
package/zh/components/deploy.md
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
Modern.js 支持通过云平台一键部署应用。
|
2
|
-
|
3
|
-
使用云平台部署应用,我们需要先开启部署功能。在项目根目录下执行 `pnpm run new`,进行如下选择:
|
4
|
-
|
5
|
-
```bash
|
6
|
-
? 请选择你想要的操作:启用可选功能
|
7
|
-
? 启用可选功能:启用「部署」功能
|
8
|
-
? 默认使用框架自带的专业 Web 服务器,是否调整:否
|
9
|
-
? 请选择 CDN 平台:阿里云 OSS
|
10
|
-
? 请选择云函数平台:阿里云 FC
|
11
|
-
```
|
12
|
-
|
13
|
-
安装依赖后,可以看到 package.json 中新增了两项依赖:
|
14
|
-
|
15
|
-
```bash
|
16
|
-
+ "@modern-js/plugin-lambda-fc": "^1"
|
17
|
-
+ "@modern-js/plugin-cdn-fc": "^1"
|
18
|
-
```
|
19
|
-
|
20
|
-
我们可以在项目根目录下的 `.env` 中添加云平台必要的账号信息,以阿里云为例,包括 `accountId`、`secretId` 和 `secretKey`。使用 CDN 上传还需要配置 `bucketName`。
|
21
|
-
|
22
|
-
部分**可暴露的、可以进入代码仓库**的环境变量可以放在项目的 `.env` 文件中,例如:
|
23
|
-
|
24
|
-
```bash
|
25
|
-
# 阿里云账号 ID
|
26
|
-
CLOUD_ACCOUNT_ID
|
27
|
-
# 阿里云 OSS Bucket 名称
|
28
|
-
CLOUD_BUCKET_NAME
|
29
|
-
```
|
30
|
-
|
31
|
-
鉴权相关信息**必须在平台上配置,不能进入代码仓库**。为了方便本地测试,我们临时的在 `.env` 中添加:
|
32
|
-
|
33
|
-
```bash
|
34
|
-
# 阿里云访问 AK
|
35
|
-
CLOUD_SECRET_ID
|
36
|
-
# 阿里云访问 SK
|
37
|
-
CLOUD_SECRET_KEY
|
38
|
-
```
|
39
|
-
|
40
|
-
:::warning 警告
|
41
|
-
此处仅仅是用于本地测试,SecretID/SecretKey 必须从代码中移除,避免信息泄露。
|
42
|
-
:::
|
43
|
-
|
44
|
-
1. AccountID 在[阿里云账号中心页](https://account.console.aliyun.com/v2/#/basic-info/index)获取。
|
45
|
-
|
46
|
-
2. SecretID(AccessKey ID),SecretKey(AccessKey Secret),在[用户信息管理页](https://usercenter.console.aliyun.com/#/manage/ak)获取。
|
47
|
-
|
48
|
-
3. Bucket 信息可以从阿里云 OSS 的 [Bucket 列表](https://oss.console.aliyun.com/bucket)中获取。
|
49
|
-
|
50
|
-
我们可以根据 OSS 的 Bucket 名称和 Region 名称拼接出 OSS 的临时域名,并设置为[静态资源域名前缀](/docs/configure/app/output/asset-prefix):
|
51
|
-
|
52
|
-
```js
|
53
|
-
export default defineConfig({
|
54
|
-
output: {
|
55
|
-
assetPrefix: "https://{bucketName}.oss-{bucketRegion}.aliyuncs.com/"
|
56
|
-
}
|
57
|
-
}
|
58
|
-
```
|
59
|
-
|
60
|
-
执行 `pnpm run deploy` 命令后,应用将会先执行构建,将静态资源上传到 OSS 以及将应用部署到阿里云 FC 中。
|
package/zh/components/dev-ide.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Modern.js 对 VS Code 等主流 IDE 提供了开箱即用的支持,具备 Lint 问题自动检测、自动修复,代码提交前的准入检查等功能特性,可以让代码开发更加高效和智能。详细介绍请参考【[确认编程环境](/docs/tutorials/first-app/c03-ide/3.1-setting-up)】。
|
@@ -1,15 +0,0 @@
|
|
1
|
-
## 入口名称
|
2
|
-
|
3
|
-
默认情况下,「入口名称」为页面入口所在目录的名称。
|
4
|
-
|
5
|
-
例如,项目的目录结构如下时,入口名称为 `page-a` 和 `page-b`。
|
6
|
-
|
7
|
-
```
|
8
|
-
└── src
|
9
|
-
├── page-a
|
10
|
-
│ └── App.jsx
|
11
|
-
└── page-b
|
12
|
-
└── App.jsx
|
13
|
-
```
|
14
|
-
|
15
|
-
如果使用 [source.entries](/docs/configure/app/source/entries) 自定义了页面入口,则「入口名称」为 `source.entries` 对象的 `key`。
|
@@ -1 +0,0 @@
|
|
1
|
-
开始之前,请参考【[环境准备](/docs/tutorials/first-app/c01-getting-started/1.1-prerequisites)】部分,确保本地环境正常。
|
@@ -1,142 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 3
|
3
|
-
title: 定制 BFF Server
|
4
|
-
---
|
5
|
-
|
6
|
-
BFF Server 与应用一体,共同开发、调试、部署,开发者通常只需要写函数即可。但有时,应用中会存在一些 BFF 函数的通用前置逻辑,例如权限校验。
|
7
|
-
|
8
|
-
在[一体化 Web 专题](/docs/guides/advanced-features/web-server)中提到过,Modern.js 支持定制 Web Server。同样,Modern.js 也为 BFF Server 提供了扩展能力。
|
9
|
-
|
10
|
-
Modern.js 允许开发者创建 `api/_app.ts` 文件,在该文件中对定制自己的 BFF Server。
|
11
|
-
|
12
|
-
和 Web Server 相同,默认支持了 4 种主流的 Node.js Server 框架:Express、Koa、Egg、Nest,开发者可以根据自身偏好,选择合适的框架来编写 `api/_app.ts`。
|
13
|
-
|
14
|
-
这里先以 Express 为例来展示一下用法,下一章节会详细介绍各个框架扩展的写法。
|
15
|
-
|
16
|
-
首先创建项目,并[开启 BFF 功能](/docs/tutorials/first-app/c09-bff/9.2-enable-bff),这时项目的目录结构是:
|
17
|
-
|
18
|
-
```md
|
19
|
-
.
|
20
|
-
├── README.md
|
21
|
-
├── api
|
22
|
-
│ ├── _app.ts
|
23
|
-
│ ├── index.ts
|
24
|
-
│ └── info
|
25
|
-
│ └── [type].ts
|
26
|
-
├── modern.config.ts
|
27
|
-
├── package.json
|
28
|
-
├── pnpm-lock.yaml
|
29
|
-
├── src
|
30
|
-
│ ├── App.css
|
31
|
-
│ ├── App.tsx
|
32
|
-
│ ├── index.test.ts
|
33
|
-
│ └── modern-app-env.d.ts
|
34
|
-
└── tsconfig.json
|
35
|
-
```
|
36
|
-
|
37
|
-
创建一个 `api/login.ts` 文件用于实现登录:
|
38
|
-
|
39
|
-
```ts
|
40
|
-
import { useContext } from '@modern-js/runtime/server';
|
41
|
-
|
42
|
-
export const post = async () => {
|
43
|
-
const ctx = useContext();
|
44
|
-
ctx.res.cookie('sid', Math.random());
|
45
|
-
|
46
|
-
return { code: 0, message: 'OK' };
|
47
|
-
};
|
48
|
-
```
|
49
|
-
|
50
|
-
:::info 补充信息
|
51
|
-
`useContext` API 用于获取请求上下文,具体用法可以看 [API 文档](/docs/apis/app/runtime/bff/use-context)。
|
52
|
-
:::
|
53
|
-
|
54
|
-
接下来修改 `api/_app.ts`,手写一个中间件用于权限校验:
|
55
|
-
|
56
|
-
```ts
|
57
|
-
import { hook } from '@modern-js/runtime/server';
|
58
|
-
import { Request, Response, NextFunction } from 'express';
|
59
|
-
|
60
|
-
export default hook(({ addMiddleware }) => {
|
61
|
-
addMiddleware(async (req: Request, res: Response, next: NextFunction) => {
|
62
|
-
if (req.url !== '/api/login') {
|
63
|
-
const sid = req?.cookies?.sid;
|
64
|
-
if (!sid) {
|
65
|
-
res.status(400);
|
66
|
-
res.json({ code: -1, message: 'need login' });
|
67
|
-
} else {
|
68
|
-
next();
|
69
|
-
}
|
70
|
-
} else {
|
71
|
-
next();
|
72
|
-
}
|
73
|
-
});
|
74
|
-
});
|
75
|
-
```
|
76
|
-
|
77
|
-
然后添加一个普通的接口函数文件 `/api/hello.ts`:
|
78
|
-
|
79
|
-
```ts
|
80
|
-
export default async () => {
|
81
|
-
return 'Hello Modern.js';
|
82
|
-
};
|
83
|
-
```
|
84
|
-
|
85
|
-
最后在前端 `/src/App.tsx` 添加接口的访问代码,直接使用一体化调用的方式:
|
86
|
-
|
87
|
-
```ts
|
88
|
-
import { useState, useEffect } from 'react';
|
89
|
-
import { get as hello } from '@api/hello';
|
90
|
-
|
91
|
-
export default () => {
|
92
|
-
const [text, setText] = useState('');
|
93
|
-
|
94
|
-
useEffect(() => {
|
95
|
-
async function fetchMyApi() {
|
96
|
-
const { message } = await hello();
|
97
|
-
setText(message);
|
98
|
-
}
|
99
|
-
|
100
|
-
fetchMyApi();
|
101
|
-
}, []);
|
102
|
-
|
103
|
-
return <p>{text}</p>;
|
104
|
-
};
|
105
|
-
```
|
106
|
-
|
107
|
-
然后 `pnpm run dev` 启动项目,访问 [http://localhost:8080/](http://localhost:8080/) 会发现 `/api/hello` 的请求被拦截了:
|
108
|
-
|
109
|
-

|
110
|
-
|
111
|
-
我们再修改前端代码 `src/App.tsx`,在访问 `/api/hello` 前先调用登录接口:
|
112
|
-
|
113
|
-
```ts
|
114
|
-
import { useState, useEffect } from 'react';
|
115
|
-
import { get as hello } from '@api/hello';
|
116
|
-
import { post as login } from '@api/login';
|
117
|
-
|
118
|
-
export default () => {
|
119
|
-
const [text, setText] = useState('');
|
120
|
-
|
121
|
-
useEffect(() => {
|
122
|
-
async function fetchAfterLogin() {
|
123
|
-
const { code } = await login();
|
124
|
-
if (code === 0) {
|
125
|
-
const { message } = await hello();
|
126
|
-
setText(message);
|
127
|
-
}
|
128
|
-
}
|
129
|
-
fetchAfterLogin();
|
130
|
-
}, []);
|
131
|
-
|
132
|
-
return <p>{text}</p>;
|
133
|
-
};
|
134
|
-
```
|
135
|
-
|
136
|
-
刷新页面,可以看到 `/api/hello` 访问成功:
|
137
|
-
|
138
|
-

|
139
|
-
|
140
|
-
以上代码模拟了在 `/api/_app.ts` 中添加中间件的方式,实现了简易的登录功能。
|
141
|
-
|
142
|
-
同样,可以在这个钩子文件中实现其他功能来扩展 BFF Server。
|