@modern-js/main-doc 2.21.0 → 2.22.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +24 -0
- package/docs/en/apis/app/commands.mdx +5 -5
- package/docs/en/apis/app/hooks/api/api.mdx +80 -0
- package/docs/en/apis/app/hooks/api/app.mdx +12 -0
- package/docs/en/apis/app/hooks/api/lambda.mdx +57 -0
- package/docs/en/apis/app/hooks/api/test.mdx +1 -1
- package/docs/en/apis/app/hooks/config/html.mdx +2 -2
- package/docs/en/apis/app/hooks/config/icon.mdx +19 -19
- package/docs/en/apis/app/hooks/config/mock.mdx +1 -1
- package/docs/en/apis/app/hooks/config/public.mdx +10 -10
- package/docs/en/apis/app/hooks/config/storybook.mdx +3 -3
- package/docs/en/apis/app/hooks/config/upload.mdx +13 -13
- package/docs/en/apis/app/hooks/modern-config.mdx +4 -4
- package/docs/en/apis/app/hooks/server/index_.mdx +2 -9
- package/docs/en/apis/app/hooks/server/test.mdx +5 -2
- package/docs/en/apis/app/hooks/shared.mdx +1 -1
- package/docs/en/apis/app/hooks/src/app.mdx +17 -27
- package/docs/en/apis/app/hooks/src/index_.mdx +6 -6
- package/docs/en/apis/app/hooks/src/pages.mdx +41 -37
- package/docs/en/apis/app/hooks/src/routes.mdx +16 -36
- package/docs/en/apis/app/hooks/src/server.mdx +1 -1
- package/docs/en/apis/app/hooks/src/stories.mdx +6 -3
- package/docs/en/apis/app/hooks/src/test.mdx +4 -3
- package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +5 -1
- package/docs/en/apis/app/runtime/web-server/hook.mdx +2 -2
- package/docs/en/apis/app/runtime/web-server/middleware.mdx +2 -2
- package/docs/en/components/global-proxy.mdx +7 -7
- package/docs/en/components/init-app.mdx +3 -3
- package/docs/en/components/init-rspack-app.mdx +4 -4
- package/docs/en/components/language-config.mdx +9 -0
- package/docs/en/components/package-manager.mdx +11 -0
- package/docs/en/components/ua-polyfill.mdx +2 -2
- package/docs/en/configure/app/source/config-dir.mdx +1 -1
- package/docs/en/configure/app/source/design-system.mdx +67 -67
- package/docs/en/configure/app/source/disable-default-entries.mdx +6 -5
- package/docs/en/configure/app/source/disable-entry-dirs.mdx +5 -5
- package/docs/en/configure/app/source/enable-async-entry.mdx +9 -9
- package/docs/en/configure/app/source/entries-dir.mdx +3 -3
- package/docs/en/configure/app/source/entries.mdx +21 -19
- package/docs/en/configure/app/tools/swc.mdx +2 -2
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -2
- package/docs/en/guides/advanced-features/bff/function.mdx +4 -4
- package/docs/en/guides/advanced-features/bff/type.mdx +5 -5
- package/docs/en/guides/advanced-features/rspack-start.mdx +6 -6
- package/docs/en/guides/advanced-features/ssg.mdx +2 -2
- package/docs/en/guides/advanced-features/testing.mdx +2 -2
- package/docs/en/guides/advanced-features/web-server.mdx +2 -2
- package/docs/en/guides/basic-features/css.mdx +2 -2
- package/docs/en/guides/basic-features/mock.mdx +1 -1
- package/docs/en/guides/basic-features/proxy.mdx +4 -5
- package/docs/en/guides/basic-features/routes.mdx +11 -7
- package/docs/en/guides/concept/entries.mdx +3 -3
- package/docs/en/guides/topic-detail/generator/create/_category_.json +4 -0
- package/docs/en/guides/topic-detail/generator/create/config.mdx +75 -0
- package/docs/en/guides/topic-detail/generator/create/option.md +151 -0
- package/docs/en/guides/topic-detail/generator/create/use.mdx +66 -0
- package/docs/en/guides/topic-detail/generator/new/_category_.json +4 -0
- package/docs/en/guides/topic-detail/generator/new/config.md +155 -0
- package/docs/en/guides/topic-detail/generator/new/option.md +67 -0
- package/docs/en/guides/topic-detail/generator/new/use.md +95 -0
- package/docs/en/guides/topic-detail/generator/plugin/_category_.json +2 -2
- package/docs/en/guides/topic-detail/generator/plugin/api/_category_.json +1 -1
- package/docs/en/guides/topic-detail/generator/plugin/api/afterForged.md +49 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/context.md +184 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/input.md +124 -0
- package/docs/en/guides/topic-detail/generator/plugin/api/onForged.md +310 -0
- package/docs/en/guides/topic-detail/generator/plugin/category.md +88 -0
- package/docs/en/guides/topic-detail/generator/plugin/context.md +104 -0
- package/docs/en/guides/topic-detail/generator/plugin/structure.md +106 -0
- package/docs/en/guides/topic-detail/generator/plugin/use.md +33 -0
- package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +8 -8
- package/docs/en/tutorials/first-app/c03-css.mdx +2 -2
- package/docs/en/tutorials/first-app/c08-entries.mdx +3 -3
- package/docs/zh/apis/app/commands.mdx +3 -3
- package/docs/zh/apis/app/hooks/api/{functions/api.mdx → api.mdx} +4 -4
- package/docs/zh/apis/app/hooks/api/app.mdx +12 -0
- package/docs/zh/apis/app/hooks/api/{framework/lambda.mdx → lambda.mdx} +5 -5
- package/docs/zh/apis/app/hooks/api/test.mdx +3 -3
- package/docs/zh/apis/app/hooks/config/icon.mdx +15 -15
- package/docs/zh/apis/app/hooks/config/mock.mdx +1 -1
- package/docs/zh/apis/app/hooks/config/public.mdx +3 -3
- package/docs/zh/apis/app/hooks/config/upload.mdx +1 -1
- package/docs/zh/apis/app/hooks/modern-config.mdx +3 -3
- package/docs/zh/apis/app/hooks/server/index_.mdx +1 -6
- package/docs/zh/apis/app/hooks/shared.mdx +1 -1
- package/docs/zh/apis/app/hooks/src/app.mdx +15 -25
- package/docs/zh/apis/app/hooks/src/index_.mdx +6 -6
- package/docs/zh/apis/app/hooks/src/pages.mdx +7 -3
- package/docs/zh/apis/app/hooks/src/routes.mdx +4 -4
- package/docs/zh/apis/app/hooks/src/stories.mdx +1 -1
- package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +5 -1
- package/docs/zh/components/language-config.mdx +9 -0
- package/docs/zh/components/package-manager.mdx +11 -0
- package/docs/zh/components/ua-polyfill.mdx +1 -1
- package/docs/zh/configure/app/source/design-system.mdx +3 -4
- package/docs/zh/configure/app/source/enable-async-entry.mdx +2 -5
- package/docs/zh/configure/app/source/entries.mdx +2 -2
- package/docs/zh/configure/app/tools/swc.mdx +2 -2
- package/docs/zh/guides/advanced-features/rspack-start.mdx +6 -6
- package/docs/zh/guides/advanced-features/ssg.mdx +1 -1
- package/docs/zh/guides/advanced-features/testing.mdx +2 -2
- package/docs/zh/guides/advanced-features/web-server.mdx +1 -1
- package/docs/zh/guides/basic-features/css.mdx +1 -1
- package/docs/zh/guides/basic-features/mock.mdx +1 -1
- package/docs/zh/guides/basic-features/routes.mdx +7 -4
- package/docs/zh/guides/concept/entries.mdx +3 -3
- package/docs/zh/guides/topic-detail/generator/create/_category_.json +4 -0
- package/docs/zh/guides/topic-detail/generator/create/config.mdx +76 -0
- package/docs/zh/guides/topic-detail/generator/create/option.md +151 -0
- package/docs/zh/guides/topic-detail/generator/create/use.mdx +66 -0
- package/docs/zh/guides/topic-detail/generator/new/_category_.json +4 -0
- package/docs/zh/guides/topic-detail/generator/new/config.md +153 -0
- package/docs/zh/guides/topic-detail/generator/new/option.md +67 -0
- package/docs/zh/guides/topic-detail/generator/new/use.md +94 -0
- package/docs/zh/guides/topic-detail/generator/plugin/_category_.json +2 -2
- package/docs/zh/guides/topic-detail/generator/plugin/api/_category_.json +1 -1
- package/docs/zh/guides/topic-detail/generator/plugin/api/afterForged.md +50 -0
- package/docs/zh/guides/topic-detail/generator/plugin/api/context.md +184 -0
- package/docs/zh/guides/topic-detail/generator/plugin/api/input.md +124 -0
- package/docs/zh/guides/topic-detail/generator/plugin/api/onForged.md +310 -0
- package/docs/zh/guides/topic-detail/generator/plugin/category.md +93 -0
- package/docs/zh/guides/topic-detail/generator/plugin/context.md +105 -0
- package/docs/zh/guides/topic-detail/generator/plugin/structure.md +106 -0
- package/docs/zh/guides/topic-detail/generator/plugin/use.md +33 -0
- package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +4 -4
- package/docs/zh/guides/topic-detail/model/test-model.mdx +1 -1
- package/docs/zh/tutorials/first-app/c03-css.mdx +1 -1
- package/docs/zh/tutorials/first-app/c08-entries.mdx +1 -1
- package/modern.config.ts +2 -1
- package/package.json +5 -5
- package/docs/en/apis/app/hooks/api/framework/_category_.json +0 -4
- package/docs/en/apis/app/hooks/api/framework/lambda.mdx +0 -57
- package/docs/en/apis/app/hooks/api/functions/_category_.json +0 -4
- package/docs/en/apis/app/hooks/api/functions/api.mdx +0 -81
- package/docs/en/apis/app/hooks/api/functions/app.mdx +0 -12
- package/docs/en/apis/app/hooks/api/functions/common.mdx +0 -9
- package/docs/en/guides/topic-detail/generator/codesmith/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/codesmith/api/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/codesmith/api/app.mdx +0 -152
- package/docs/en/guides/topic-detail/generator/codesmith/api/ejs.mdx +0 -56
- package/docs/en/guides/topic-detail/generator/codesmith/api/fs.mdx +0 -54
- package/docs/en/guides/topic-detail/generator/codesmith/api/git.mdx +0 -50
- package/docs/en/guides/topic-detail/generator/codesmith/api/handlebars.mdx +0 -57
- package/docs/en/guides/topic-detail/generator/codesmith/api/json.mdx +0 -56
- package/docs/en/guides/topic-detail/generator/codesmith/api/npm.mdx +0 -48
- package/docs/en/guides/topic-detail/generator/codesmith/develop.mdx +0 -53
- package/docs/en/guides/topic-detail/generator/codesmith/introduce.mdx +0 -47
- package/docs/en/guides/topic-detail/generator/codesmith/run-in-js.mdx +0 -47
- package/docs/en/guides/topic-detail/generator/codesmith/structure.mdx +0 -89
- package/docs/en/guides/topic-detail/generator/config/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/config/app.mdx +0 -82
- package/docs/en/guides/topic-detail/generator/config/common.mdx +0 -100
- package/docs/en/guides/topic-detail/generator/config/module.mdx +0 -42
- package/docs/en/guides/topic-detail/generator/config/monorepo.mdx +0 -28
- package/docs/en/guides/topic-detail/generator/plugin/abstract.mdx +0 -23
- package/docs/en/guides/topic-detail/generator/plugin/api/file/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/file/addFile.mdx +0 -52
- package/docs/en/guides/topic-detail/generator/plugin/api/file/addHelper.mdx +0 -26
- package/docs/en/guides/topic-detail/generator/plugin/api/file/addManyFile.mdx +0 -58
- package/docs/en/guides/topic-detail/generator/plugin/api/file/addPartial.mdx +0 -26
- package/docs/en/guides/topic-detail/generator/plugin/api/file/introduce.mdx +0 -39
- package/docs/en/guides/topic-detail/generator/plugin/api/file/rmDir.mdx +0 -24
- package/docs/en/guides/topic-detail/generator/plugin/api/file/rmFile.mdx +0 -24
- package/docs/en/guides/topic-detail/generator/plugin/api/file/updateJSONFile.mdx +0 -54
- package/docs/en/guides/topic-detail/generator/plugin/api/file/updateModernConfig.mdx +0 -27
- package/docs/en/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.mdx +0 -33
- package/docs/en/guides/topic-detail/generator/plugin/api/git/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.mdx +0 -20
- package/docs/en/guides/topic-detail/generator/plugin/api/git/initGitRepo.mdx +0 -16
- package/docs/en/guides/topic-detail/generator/plugin/api/git/isInGitRepo.mdx +0 -16
- package/docs/en/guides/topic-detail/generator/plugin/api/hook/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/hook/afterForged.mdx +0 -35
- package/docs/en/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +0 -35
- package/docs/en/guides/topic-detail/generator/plugin/api/info/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/info/isFileExit.mdx +0 -22
- package/docs/en/guides/topic-detail/generator/plugin/api/info/locale.mdx +0 -17
- package/docs/en/guides/topic-detail/generator/plugin/api/info/readDir.mdx +0 -22
- package/docs/en/guides/topic-detail/generator/plugin/api/input/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/input/addInputAfter.mdx +0 -55
- package/docs/en/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +0 -55
- package/docs/en/guides/topic-detail/generator/plugin/api/input/setInput.mdx +0 -43
- package/docs/en/guides/topic-detail/generator/plugin/api/input/setInputValue.mdx +0 -31
- package/docs/en/guides/topic-detail/generator/plugin/api/input/type.mdx +0 -65
- package/docs/en/guides/topic-detail/generator/plugin/api/introduce.mdx +0 -90
- package/docs/en/guides/topic-detail/generator/plugin/api/new/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/new/createElement.mdx +0 -33
- package/docs/en/guides/topic-detail/generator/plugin/api/new/createSubProject.mdx +0 -35
- package/docs/en/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +0 -44
- package/docs/en/guides/topic-detail/generator/plugin/api/new/introduce.mdx +0 -15
- package/docs/en/guides/topic-detail/generator/plugin/api/npm/_category_.json +0 -4
- package/docs/en/guides/topic-detail/generator/plugin/api/npm/install.mdx +0 -18
- package/docs/en/guides/topic-detail/generator/plugin/develop.mdx +0 -125
- package/docs/en/guides/topic-detail/generator/plugin/use.mdx +0 -61
- package/docs/en/guides/topic-detail/generator/project.mdx +0 -118
- package/docs/zh/apis/app/hooks/api/framework/_category_.json +0 -4
- package/docs/zh/apis/app/hooks/api/functions/_category_.json +0 -4
- package/docs/zh/apis/app/hooks/api/functions/app.mdx +0 -12
- package/docs/zh/apis/app/hooks/api/functions/common.mdx +0 -9
- package/docs/zh/guides/topic-detail/generator/codesmith/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/codesmith/api/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/codesmith/api/app.mdx +0 -152
- package/docs/zh/guides/topic-detail/generator/codesmith/api/ejs.mdx +0 -56
- package/docs/zh/guides/topic-detail/generator/codesmith/api/fs.mdx +0 -54
- package/docs/zh/guides/topic-detail/generator/codesmith/api/git.mdx +0 -49
- package/docs/zh/guides/topic-detail/generator/codesmith/api/handlebars.mdx +0 -56
- package/docs/zh/guides/topic-detail/generator/codesmith/api/json.mdx +0 -56
- package/docs/zh/guides/topic-detail/generator/codesmith/api/npm.mdx +0 -47
- package/docs/zh/guides/topic-detail/generator/codesmith/develop.mdx +0 -53
- package/docs/zh/guides/topic-detail/generator/codesmith/introduce.mdx +0 -59
- package/docs/zh/guides/topic-detail/generator/codesmith/run-in-js.mdx +0 -47
- package/docs/zh/guides/topic-detail/generator/codesmith/structure.mdx +0 -89
- package/docs/zh/guides/topic-detail/generator/config/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/config/app.mdx +0 -82
- package/docs/zh/guides/topic-detail/generator/config/common.mdx +0 -100
- package/docs/zh/guides/topic-detail/generator/config/module.mdx +0 -42
- package/docs/zh/guides/topic-detail/generator/config/monorepo.mdx +0 -28
- package/docs/zh/guides/topic-detail/generator/plugin/abstract.mdx +0 -23
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/addFile.mdx +0 -52
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/addHelper.mdx +0 -26
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/addManyFile.mdx +0 -55
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/addPartial.mdx +0 -26
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/introduce.mdx +0 -39
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/rmDir.mdx +0 -24
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/rmFile.mdx +0 -24
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/updateJSONFile.mdx +0 -54
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/updateModernConfig.mdx +0 -27
- package/docs/zh/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.mdx +0 -33
- package/docs/zh/guides/topic-detail/generator/plugin/api/git/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.mdx +0 -20
- package/docs/zh/guides/topic-detail/generator/plugin/api/git/initGitRepo.mdx +0 -16
- package/docs/zh/guides/topic-detail/generator/plugin/api/git/isInGitRepo.mdx +0 -16
- package/docs/zh/guides/topic-detail/generator/plugin/api/hook/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/hook/afterForged.mdx +0 -35
- package/docs/zh/guides/topic-detail/generator/plugin/api/hook/onForged.mdx +0 -35
- package/docs/zh/guides/topic-detail/generator/plugin/api/info/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/info/isFileExit.mdx +0 -22
- package/docs/zh/guides/topic-detail/generator/plugin/api/info/locale.mdx +0 -17
- package/docs/zh/guides/topic-detail/generator/plugin/api/info/readDir.mdx +0 -22
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/addInputAfter.mdx +0 -57
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.mdx +0 -56
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/setInput.mdx +0 -43
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/setInputValue.mdx +0 -29
- package/docs/zh/guides/topic-detail/generator/plugin/api/input/type.mdx +0 -65
- package/docs/zh/guides/topic-detail/generator/plugin/api/introduce.mdx +0 -92
- package/docs/zh/guides/topic-detail/generator/plugin/api/new/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/new/createElement.mdx +0 -33
- package/docs/zh/guides/topic-detail/generator/plugin/api/new/createSubProject.mdx +0 -35
- package/docs/zh/guides/topic-detail/generator/plugin/api/new/enableFunc.mdx +0 -44
- package/docs/zh/guides/topic-detail/generator/plugin/api/new/introduce.mdx +0 -15
- package/docs/zh/guides/topic-detail/generator/plugin/api/npm/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/generator/plugin/api/npm/install.mdx +0 -16
- package/docs/zh/guides/topic-detail/generator/plugin/develop.mdx +0 -125
- package/docs/zh/guides/topic-detail/generator/plugin/use.mdx +0 -61
- package/docs/zh/guides/topic-detail/generator/project.mdx +0 -118
@@ -449,7 +449,7 @@ export const init = (context: RuntimeContext) => {
|
|
449
449
|
在约定式路由下, Modern.js 会根据路由,自动地对路由进行分片,当用户访问具体的路由时,会自动加载对应的分片,这样可以有效地减少首屏加载的时间。但这也带来了一个问题,当用户访问一个路由时,如果该路由对应的分片还未加载完成,就会出现白屏的情况。
|
450
450
|
这种情况下你可以通过定义 `Loading` 组件,在静态资源加载完成前,展示一个自定义的 `Loading` 组件。
|
451
451
|
|
452
|
-
为了进一步提升用户体验,减少 loading 的时间,Modern.js 支持在 Link 组件上定义 `prefetch`
|
452
|
+
为了进一步提升用户体验,减少 loading 的时间,Modern.js 支持在 Link 组件上定义 `prefetch` 属性,可以提前对静态资源和数据进行加载:
|
453
453
|
|
454
454
|
```tsx
|
455
455
|
<Link prefetch="intent" to="page">
|
@@ -461,6 +461,8 @@ export const init = (context: RuntimeContext) => {
|
|
461
461
|
|
462
462
|
:::
|
463
463
|
|
464
|
+
`prefetch` 属性有三个可选值:
|
465
|
+
|
464
466
|
- `none`, 默认值,不会做 prefetch,没有任何额外的行为。
|
465
467
|
- `intent`,这是我们推荐大多数场景下使用的值,当你把鼠标放在 Link 上时,会自动开始加载对应的分片和 Data Loader 中定义的数据,当鼠标移开时,会自动取消加载。在我们的测试中,即使是快速点击,也能减少大约 200ms 的加载时间。
|
466
468
|
- `render`,当 Link 组件渲染时,就会加载对应的分片和 Data Loader 中定义的数据。
|
@@ -505,8 +507,6 @@ export default () => {
|
|
505
507
|
Modern.js 默认对约定式路由做了一系列资源加载及渲染上的优化,并且提供了开箱即用的 SSR 能力,而这些能力,在使用自控路由时,都需要开发者自行封装,推荐开发者使用约定式路由。
|
506
508
|
:::
|
507
509
|
|
508
|
-
使用自控式路由时,如果开发者关闭了 [`runtime.router`](/configure/app/runtime/router) 配置,并直接使用 `react-router-dom`,那还需要根据 React Router 文档自行包裹 `Provider`。
|
509
|
-
|
510
510
|
## 其他路由方案
|
511
511
|
|
512
512
|
默认情况下,Modern.js 会开启内置的路由方案,即 React Router。
|
@@ -519,7 +519,9 @@ export default defineConfig({
|
|
519
519
|
});
|
520
520
|
```
|
521
521
|
|
522
|
-
Modern.js
|
522
|
+
如上述配置,当开启 [`runtime.router`](/configure/app/runtime/router) 配置时,Modern.js 会从 `@modern-js/runtime/router` 命名空间导出 React Router 的 API 供开发者使用,保证开发者和 Modern.js 中使用同一份代码,并自动根据 router 配置包裹 `Provider` 组件。另外,这种情况下,React Router 的代码会被打包到 JS 产物中。
|
523
|
+
|
524
|
+
如果项目已经有自己的路由方案,或者不需要使用客户端路由,可以关闭这个功能。
|
523
525
|
|
524
526
|
```js
|
525
527
|
export default defineConfig({
|
@@ -529,5 +531,6 @@ export default defineConfig({
|
|
529
531
|
});
|
530
532
|
```
|
531
533
|
|
534
|
+
如上述配置, 如果关闭了 [`runtime.router`](/configure/app/runtime/router) 配置,并直接使用 `react-router-dom` 进行项目路由管理时,还需要根据 React Router 文档自行包裹 `Provider`。
|
532
535
|
|
533
536
|
|
@@ -33,9 +33,9 @@ Modern.js 初始化的项目是单入口的(SPA),项目结构如下:
|
|
33
33
|
在 Modern.js 项目中,你可以很方便的将单入口切换成多入口,直接在项目下执行 `pnpm run new`,通过生成器创建入口即可:
|
34
34
|
|
35
35
|
```bash
|
36
|
-
?
|
37
|
-
?
|
38
|
-
?
|
36
|
+
? 请选择你想要的操作 创建工程元素
|
37
|
+
? 请选择创建元素类型 新建「应用入口」
|
38
|
+
? 请填写入口名称 new-entry
|
39
39
|
```
|
40
40
|
|
41
41
|
执行后,Modern.js 会自动生成一个新的入口目录,此时可以看到 `src/` 目录变成如下结构:
|
@@ -0,0 +1,76 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 3
|
3
|
+
---
|
4
|
+
|
5
|
+
# 配置参数
|
6
|
+
|
7
|
+
`@modern-js/create` 提供了 [--config](/guides/topic-detail/generator/create/option.html#-c,---config-<config>) 参数,用于提前指定执行过程中交互问题的答案。
|
8
|
+
|
9
|
+
这里将介绍不同情况下,可以在 `config` 中配置的字段及字段值。
|
10
|
+
|
11
|
+
|
12
|
+
## 通用配置
|
13
|
+
|
14
|
+
### solution
|
15
|
+
|
16
|
+
问题:请选择你想创建的工程类型
|
17
|
+
|
18
|
+
选项:
|
19
|
+
|
20
|
+
- Web 应用 -- mwa
|
21
|
+
|
22
|
+
- Npm 模块 -- module
|
23
|
+
|
24
|
+
- 文档站 -- doc
|
25
|
+
|
26
|
+
- Monorepo -- monorepo
|
27
|
+
|
28
|
+
### scenes
|
29
|
+
|
30
|
+
问题:请选择项目场景
|
31
|
+
|
32
|
+
选项:
|
33
|
+
|
34
|
+
使用自定义生成器插件时的插件关键字列表。
|
35
|
+
|
36
|
+
## Web 应用
|
37
|
+
|
38
|
+
import LanguageConfig from '@site-docs/components/language-config';
|
39
|
+
|
40
|
+
<LanguageConfig />
|
41
|
+
|
42
|
+
import PackageManager from '@site-docs/components/package-manager';
|
43
|
+
|
44
|
+
<PackageManager />
|
45
|
+
|
46
|
+
### buildTools
|
47
|
+
|
48
|
+
问题:请选择构建工具
|
49
|
+
|
50
|
+
选项:
|
51
|
+
|
52
|
+
- webpack -- webpack
|
53
|
+
|
54
|
+
- Rspack -- rspack
|
55
|
+
|
56
|
+
## Npm 模块
|
57
|
+
|
58
|
+
### packageName
|
59
|
+
|
60
|
+
问题:请填写项目名称
|
61
|
+
|
62
|
+
:::info
|
63
|
+
Npm 模块的 `package.json` 的 name 字段值,该配置值为字符串类型。
|
64
|
+
:::
|
65
|
+
|
66
|
+
<LanguageConfig />
|
67
|
+
|
68
|
+
<PackageManager />
|
69
|
+
|
70
|
+
## 文档站
|
71
|
+
|
72
|
+
<PackageManager />
|
73
|
+
|
74
|
+
## Monorepo
|
75
|
+
|
76
|
+
<PackageManager />
|
@@ -0,0 +1,151 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 2
|
3
|
+
---
|
4
|
+
|
5
|
+
# CLI 参数
|
6
|
+
|
7
|
+
`@modern-js/create` 提供了很多配置参数用于配置其执行过程中的行为,可以通过 `--help` 参数进行查看:
|
8
|
+
|
9
|
+
```bash
|
10
|
+
npx @modern-js/create@latest --help
|
11
|
+
|
12
|
+
Usage: npx @modern-js/create@latest [projectDir]
|
13
|
+
|
14
|
+
创建 Modern.js 工程方案
|
15
|
+
|
16
|
+
Options:
|
17
|
+
--version 当前 create 工具版本号
|
18
|
+
--lang <lang> 设置 create 工具语言(zh 或者 en)
|
19
|
+
-c, --config <config> 创建项目默认配置(JSON 字符串) (default: "{}")
|
20
|
+
-d,--debug 开启 Debug 模式,打印调试日志信息 (default: false)
|
21
|
+
--mwa 一键创建 Web 应用(使用默认配置) (default: false)
|
22
|
+
--module 一键创建 Module 应用(使用默认配置) (default: false)
|
23
|
+
--monorepo 一键创建 Monorepo 应用(使用默认配置) (default: false)
|
24
|
+
--generator <generator> 使用自定义生成器
|
25
|
+
-p, --plugin <plugin> 使用生成器插件创建新的工程方案类型或定制化 Modern.js 工程方案 (default: [])
|
26
|
+
--dist-tag <distTag> 生成项目时生成器使用特殊的 npm Tag (default: "")
|
27
|
+
--packages <packages> 创建项目指定特定依赖版本信息 (default: "{}")
|
28
|
+
--registry <registry> 在创建过程中定制 npm Registry (default: "")
|
29
|
+
--no-need-install 无需安装依赖
|
30
|
+
-h, --help display help for command
|
31
|
+
|
32
|
+
Commands:
|
33
|
+
clean-cache 清除本地生成器缓存
|
34
|
+
```
|
35
|
+
|
36
|
+
下面将针对这些参数做详细介绍:
|
37
|
+
|
38
|
+
## [projectDir]
|
39
|
+
|
40
|
+
项目目录名称。
|
41
|
+
|
42
|
+
执行 `@modern-js/create` 时,默认会在当前目录创建 `projectDir` 文件夹,并在该文件夹下初始化项目。该参数为空时,将会在当前目录直接生成初始化项目。
|
43
|
+
|
44
|
+
:::info
|
45
|
+
如果 `projectDir` 所在目录内容不为空,将会提示是否继续创建,推荐在空目录下进行项目初始化操作。
|
46
|
+
:::
|
47
|
+
|
48
|
+
## --version
|
49
|
+
|
50
|
+
获取 `@modern-js/create` 工具版本。
|
51
|
+
|
52
|
+
```bash
|
53
|
+
npx @modern-js/create@latest --version
|
54
|
+
|
55
|
+
[INFO] @modern-js/create v2.21.1
|
56
|
+
```
|
57
|
+
|
58
|
+
## --lang \<lang>
|
59
|
+
|
60
|
+
执行执行语言,支持 `zh` 和 `en`。
|
61
|
+
|
62
|
+
默认情况下,`@modern-js/create` 会自动识别用户的系统语言,选择使用中文或者英文,如果识别失败或者不符合使用习惯,可以使用该参数手动指定。
|
63
|
+
|
64
|
+
## -c, --config \<config>
|
65
|
+
|
66
|
+
指定项目默认配置。
|
67
|
+
|
68
|
+
默认情况下,`@modern-js/create` 在执行过程中会出现选择语言、包管理工具等交互问题,当需要提前指定这些配置内容时,可以通过该字段传入。
|
69
|
+
|
70
|
+
该字段为 JSON 字符串,例如需指定包管理工具时:
|
71
|
+
|
72
|
+
```bash
|
73
|
+
npx @modern-js/create@latest --config '{"packageManager": "pnpm"}'
|
74
|
+
```
|
75
|
+
|
76
|
+
`config` 支持的参数可查看[配置参数](/guides/topic-detail/generator/create/config.html)。
|
77
|
+
|
78
|
+
## -d,--debug
|
79
|
+
|
80
|
+
展示调试日志。
|
81
|
+
|
82
|
+
当在使用过程中遇到问题时,可以使用该参数显示调试日志,方便快速定位问题位置及对问题进行排查。
|
83
|
+
|
84
|
+
## --mwa
|
85
|
+
|
86
|
+
快速创建 Web 应用项目。
|
87
|
+
|
88
|
+
## --module
|
89
|
+
|
90
|
+
快速创建 Npm 模块项目。
|
91
|
+
|
92
|
+
## --monorepo
|
93
|
+
|
94
|
+
快速创建 Monorepo 项目。
|
95
|
+
|
96
|
+
## -p, --plugin \<plugin>
|
97
|
+
|
98
|
+
指定生成器插件。
|
99
|
+
|
100
|
+
`@modern-js/create` 支持使用生成器插件定制 Modern.js 默认的工程方案类型或者添加工程方案类型场景,详情可查看[开发生成器插件](/guides/topic-detail/generator/plugin/structure.html)。
|
101
|
+
|
102
|
+
## --generator \<generator>
|
103
|
+
|
104
|
+
指定微生成器。
|
105
|
+
|
106
|
+
<!-- TODO 详情可查看[开发微生成器]-->
|
107
|
+
`@modern-js/create` 支持使用微生成器完全定制项目生成流程。
|
108
|
+
|
109
|
+
## --dist-tag \<distTag>
|
110
|
+
|
111
|
+
指定生成器及 Modern.js 相关依赖版本。
|
112
|
+
|
113
|
+
`@modern-js/create` 执行过程中会执行更小的微生成器,默认会使用 `latest` 的微生成器版本,使用该参数可以指定执行的微生成器的版本号和对应的安装 Modern.js 相关依赖的版本。
|
114
|
+
|
115
|
+
比如使用 `next` 版本:
|
116
|
+
|
117
|
+
```bash
|
118
|
+
npx @modern-js/create@next --dist-tag next
|
119
|
+
```
|
120
|
+
|
121
|
+
## --packages \<packages>
|
122
|
+
|
123
|
+
创建项目是指定特定包版本依赖。
|
124
|
+
|
125
|
+
在创建项目时如果有需要指定特定包版本,可以使用该参数。该参数会在项目根目录的 `package.json` 中配置 `pnpm.overrides`(包管理工具选择 pnpm) 或者 `resolutions` 锁定包版本号。
|
126
|
+
|
127
|
+
该参数值为 JSON 字符串。
|
128
|
+
|
129
|
+
例如指定 react 版本:
|
130
|
+
|
131
|
+
```bash
|
132
|
+
npx @modern-js/create@latest --packages '{"react":"^17"}'
|
133
|
+
```
|
134
|
+
|
135
|
+
## --registry \<registry>
|
136
|
+
|
137
|
+
指定执行子生成器和获取项目依赖版本的 npm registry。
|
138
|
+
|
139
|
+
## --no-need-install
|
140
|
+
|
141
|
+
忽略自动安装依赖。
|
142
|
+
|
143
|
+
默认情况下,`@modern-js/create` 在创建项目完成后会自动安装依赖,使用该参数可以忽略安装依赖步骤。
|
144
|
+
|
145
|
+
## clean-cache
|
146
|
+
|
147
|
+
`@modern-js/create` 默认会在执行机器的 tmp 目录生成子生成器缓存用于加快生成器执行速度,在需要刷新缓存或者缓存出现问题时可以使用该命令删除缓存。
|
148
|
+
|
149
|
+
```bash
|
150
|
+
npx @modern-js/create@latest clean-cache
|
151
|
+
```
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
---
|
4
|
+
|
5
|
+
# 使用
|
6
|
+
|
7
|
+
Modern.js 提供了 `@modern-js/create` 工具用于创建 Modern.js 提供的工程方案项目,例如 [Web 应用](https://modernjs.dev/)、[Npm 模块](https://modernjs.dev/module-tools)、[文档站](https://modernjs.dev/doc-tools)、[Monorepo](/guides/topic-detail/monorepo/intro.html) 等。
|
8
|
+
|
9
|
+
下面将介绍 `@modern-js/create` 的使用姿势。
|
10
|
+
|
11
|
+
## 环境准备
|
12
|
+
|
13
|
+
import Prerequisites from "@site-docs/components/prerequisites"
|
14
|
+
|
15
|
+
<Prerequisites />
|
16
|
+
|
17
|
+
## 使用 `@modern-js/create` 创建项目
|
18
|
+
|
19
|
+
不需要全局安装 `@modern-js/create`,直接使用 npx 执行即可:
|
20
|
+
|
21
|
+
```bash
|
22
|
+
npx @modern-js/create@latest [projectDir]
|
23
|
+
```
|
24
|
+
|
25
|
+
:::info
|
26
|
+
`[projectDir]` 为项目目录名称,不填写将会在当前目录创建项目。
|
27
|
+
:::
|
28
|
+
|
29
|
+
执行过程中需要根据提示完成交互,创建符合需求的项目。
|
30
|
+
|
31
|
+
### 创建 Web 应用项目
|
32
|
+
|
33
|
+
```bash
|
34
|
+
npx @modern-js/create@latest web-app
|
35
|
+
? 请选择你想创建的工程类型 Web 应用
|
36
|
+
? 请选择开发语言 TS
|
37
|
+
? 请选择包管理工具 pnpm
|
38
|
+
? 请选择构建工具 webpack
|
39
|
+
```
|
40
|
+
|
41
|
+
### 创建 Npm 模块项目
|
42
|
+
|
43
|
+
```bash
|
44
|
+
npx @modern-js/create@latest npm-module
|
45
|
+
? 请选择你想创建的工程类型 Npm 模块
|
46
|
+
? 请填写项目名称 npm-module
|
47
|
+
? 请选择开发语言 TS
|
48
|
+
? 请选择包管理工具 pnpm
|
49
|
+
```
|
50
|
+
|
51
|
+
### 创建文档站项目
|
52
|
+
|
53
|
+
```bash
|
54
|
+
npx @modern-js/create@latest doc-website
|
55
|
+
? 请选择你想创建的工程类型 文档站
|
56
|
+
? 请选择包管理工具 pnpm
|
57
|
+
```
|
58
|
+
|
59
|
+
### 创建 Monorepo
|
60
|
+
|
61
|
+
```bash
|
62
|
+
npx @modern-js/create@latest monorepo
|
63
|
+
? 请选择你想创建的工程类型 Monorepo
|
64
|
+
? 请选择包管理工具 pnpm
|
65
|
+
```
|
66
|
+
|
@@ -0,0 +1,153 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 3
|
3
|
+
---
|
4
|
+
|
5
|
+
# 配置参数
|
6
|
+
|
7
|
+
`new` 命令提供了 [--config](/guides/topic-detail/generator/new/option.html#-c,---config-<config>) 参数,用于提前指定执行过程中交互问题的答案。
|
8
|
+
|
9
|
+
这里将介绍不同情况下,可以在 `config` 中配置的字段及字段值。
|
10
|
+
|
11
|
+
## 通用配置
|
12
|
+
|
13
|
+
### actionType
|
14
|
+
|
15
|
+
问题:请选择你想要的操作
|
16
|
+
|
17
|
+
选项:
|
18
|
+
|
19
|
+
- 创建工程元素 -- element
|
20
|
+
|
21
|
+
- 启用可选功能 -- function
|
22
|
+
|
23
|
+
- 自动重构 -- refactor
|
24
|
+
|
25
|
+
## Web 应用
|
26
|
+
|
27
|
+
### element
|
28
|
+
|
29
|
+
问题:请选择创建元素类型
|
30
|
+
|
31
|
+
选项:
|
32
|
+
|
33
|
+
- 新建「应用入口」 -- entry
|
34
|
+
|
35
|
+
- 新建「自定义 Web Server」源码目录 -- server
|
36
|
+
|
37
|
+
### name
|
38
|
+
|
39
|
+
问题: 请填写入口名称
|
40
|
+
|
41
|
+
:::info
|
42
|
+
新建应用入口时需要该配置,该配置值为字符串类型。
|
43
|
+
:::
|
44
|
+
|
45
|
+
### function
|
46
|
+
|
47
|
+
问题:请选择功能名称
|
48
|
+
|
49
|
+
选项:
|
50
|
+
|
51
|
+
- 启用「Rspack 构建」 -- rspack
|
52
|
+
|
53
|
+
- 启用 「Tailwind CSS」 支持 -- tailwindcss
|
54
|
+
|
55
|
+
- 启用「BFF」功能 -- bff
|
56
|
+
|
57
|
+
- 启用「SSG」功能 -- ssg
|
58
|
+
|
59
|
+
- 启用「SWC 编译」-- swc
|
60
|
+
|
61
|
+
- 启用「微前端」模式 -- micro_frontend
|
62
|
+
|
63
|
+
- 启用「单元测试 / 集成测试」功能 -- test
|
64
|
+
|
65
|
+
- 启用「基于 UA 的 Polyfill」功能 -- polyfill
|
66
|
+
|
67
|
+
- 启用「全局代理」 -- proxy
|
68
|
+
|
69
|
+
- 启用「Visual Testing (Storybook)」模式 -- mwa_storybook
|
70
|
+
|
71
|
+
### bffType
|
72
|
+
|
73
|
+
问题:请选择 BFF 类型
|
74
|
+
|
75
|
+
选项:
|
76
|
+
|
77
|
+
- 函数模式 -- func
|
78
|
+
|
79
|
+
- 框架模式 -- framework
|
80
|
+
|
81
|
+
:::info
|
82
|
+
启用 BFF 功能时需要该配置。
|
83
|
+
:::
|
84
|
+
|
85
|
+
### framework
|
86
|
+
|
87
|
+
问题:请选择运行时框架
|
88
|
+
|
89
|
+
选项:
|
90
|
+
|
91
|
+
- Express -- express
|
92
|
+
|
93
|
+
- Koa -- koa
|
94
|
+
|
95
|
+
:::info
|
96
|
+
启用 BFF 功能时需要该配置。
|
97
|
+
:::
|
98
|
+
|
99
|
+
### refactor
|
100
|
+
|
101
|
+
问题:请选择重构类型
|
102
|
+
|
103
|
+
选项:
|
104
|
+
|
105
|
+
- 使用 React Router v5 -- react_router_5
|
106
|
+
|
107
|
+
## Npm 模块
|
108
|
+
|
109
|
+
### function
|
110
|
+
|
111
|
+
问题:启用可选功能
|
112
|
+
|
113
|
+
选项:
|
114
|
+
|
115
|
+
- 启用「单元测试 / 集成测试」功能 -- test
|
116
|
+
|
117
|
+
- 启用 「Tailwind CSS」 支持 -- tailwindcss
|
118
|
+
|
119
|
+
- 启用「Storybook」 -- storybook
|
120
|
+
|
121
|
+
- 启用「Runtime API」 -- runtime_api
|
122
|
+
|
123
|
+
## Monorepo
|
124
|
+
|
125
|
+
### sub_solution
|
126
|
+
|
127
|
+
问题:请选择你想创建的工程类型
|
128
|
+
|
129
|
+
选项:
|
130
|
+
|
131
|
+
- Web 应用 -- mwa
|
132
|
+
|
133
|
+
- Web 应用(测试)-- mwa_test
|
134
|
+
|
135
|
+
- Npm 模块 -- module
|
136
|
+
|
137
|
+
- Npm 模块(内部)-- inner_module
|
138
|
+
|
139
|
+
### packageName
|
140
|
+
|
141
|
+
问题:请填写子项目名称
|
142
|
+
|
143
|
+
:::info
|
144
|
+
子项目的 `package.json` 的 name 字段值,该配置值为字符串类型。
|
145
|
+
:::
|
146
|
+
|
147
|
+
### packagePath
|
148
|
+
|
149
|
+
问题:请填写子项目目录名称
|
150
|
+
|
151
|
+
:::info
|
152
|
+
子项目基于 apps 或者 packages 目录的子目录名称,该字段为字符串类型。
|
153
|
+
:::
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 2
|
3
|
+
---
|
4
|
+
|
5
|
+
# CLI 参数
|
6
|
+
|
7
|
+
`new` 命令提供了很多配置参数用于配置其执行过程中的行为,可以通过 `--help` 参数进行查看:
|
8
|
+
|
9
|
+
```bash
|
10
|
+
npm run new --help
|
11
|
+
|
12
|
+
Usage: modern new [options]
|
13
|
+
|
14
|
+
启用可选功能
|
15
|
+
|
16
|
+
Options:
|
17
|
+
--lang <lang> 设置 new 命令执行语言(zh 或者 en)
|
18
|
+
-c, --config <config> 生成器运行默认配置(JSON 字符串)
|
19
|
+
-d, --debug 开启 Debug 模式,打印调试日志信息 (default: false)
|
20
|
+
--dist-tag <tag> 生成器使用特殊的 npm Tag 版本
|
21
|
+
--registry <registry> 生成器运行过程中定制 npm Registry
|
22
|
+
-h, --help display help for command
|
23
|
+
```
|
24
|
+
|
25
|
+
下面将针对这些参数做详细介绍:
|
26
|
+
|
27
|
+
## --lang \<lang>
|
28
|
+
|
29
|
+
执行执行语言,支持 `zh` 和 `en`。
|
30
|
+
|
31
|
+
默认情况下,`new` 命令会自动识别用户的系统语言,选择使用中文或者英文,如果识别失败或者不符合使用习惯,可以使用该参数手动指定。
|
32
|
+
|
33
|
+
## -c, --config \<config>
|
34
|
+
|
35
|
+
指定项目默认配置。
|
36
|
+
|
37
|
+
默认情况下,new 命令在执行过程中会出现选择操作类型、开启功能等交互问题,当需要提前指定这些配置内容时,可以通过该字段传入。
|
38
|
+
|
39
|
+
该字段为 JSON 字符串,例如需指定 BFF 框架时:
|
40
|
+
|
41
|
+
```bash
|
42
|
+
npm run new --config '{"framework": "express"}'
|
43
|
+
```
|
44
|
+
|
45
|
+
`config` 支持的参数可查看[配置参数](/guides/topic-detail/generator/new/config.html)。
|
46
|
+
|
47
|
+
## -d,--debug
|
48
|
+
|
49
|
+
展示调试日志。
|
50
|
+
|
51
|
+
当在使用过程中遇到问题时,可以使用该参数显示调试日志,方便快速定位问题位置及对问题进行排查。
|
52
|
+
|
53
|
+
## --registry \<registry>
|
54
|
+
|
55
|
+
指定执行子生成器和获取项目依赖版本的 npm registry。
|
56
|
+
|
57
|
+
## --dist-tag \<distTag>
|
58
|
+
|
59
|
+
指定生成器版本。
|
60
|
+
|
61
|
+
`new` 命令执行过程中会执行更小的微生成器,默认会使用 `latest` 的微生成器版本,使用该参数可以指定执行的微生成器的版本号的版本。
|
62
|
+
|
63
|
+
比如使用 `next` 版本:
|
64
|
+
|
65
|
+
```bash
|
66
|
+
npm run new --dist-tag next
|
67
|
+
```
|
@@ -0,0 +1,94 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
---
|
4
|
+
|
5
|
+
# 使用
|
6
|
+
|
7
|
+
在 Web 应用、 Npm 模块和 Monorepo 项目中,我们提供了 `new` 命令用于创建项目元素、开启功能和创建子项目。
|
8
|
+
|
9
|
+
## Web 应用
|
10
|
+
|
11
|
+
Web 应用项目通过 `@modern-js/app-tools` 提供 `new` 命令。
|
12
|
+
|
13
|
+
new 命令提供了三种操作类型:
|
14
|
+
|
15
|
+
- 创建工程元素
|
16
|
+
|
17
|
+
- 启用可选功能
|
18
|
+
|
19
|
+
- 自动重构
|
20
|
+
|
21
|
+
每种操作类型都提供了对应支持的列表,可根据项目情况进行选择。
|
22
|
+
|
23
|
+
例如:
|
24
|
+
|
25
|
+
创建新的应用入口:
|
26
|
+
|
27
|
+
```bash
|
28
|
+
npm run new
|
29
|
+
? 请选择你想要的操作 创建工程元素
|
30
|
+
? 请选择创建元素类型 新建「应用入口」
|
31
|
+
? 请填写入口名称 entry
|
32
|
+
```
|
33
|
+
|
34
|
+
执行完成后将会在项目 `src` 目录创建新入口对应名称的文件夹及默认入口文件,并且自动帮忙整理之前 `src` 下入口文件到 `package.json` 中 `name` 字段对应的文件夹中。
|
35
|
+
|
36
|
+
开启 BFF 功能:
|
37
|
+
|
38
|
+
```bash
|
39
|
+
npm run new
|
40
|
+
? 请选择你想要的操作 启用可选功能
|
41
|
+
? 请选择功能名称 启用「BFF」功能
|
42
|
+
? 请选择 BFF 类型 函数模式
|
43
|
+
? 请选择运行时框架 Express
|
44
|
+
```
|
45
|
+
|
46
|
+
执行完成后将会在项目安装 BFF 相关依赖,并创建 api 目录用于 BFF 模块的开发并提供提示信息用于注册 BFF 插件。
|
47
|
+
|
48
|
+
:::info
|
49
|
+
这里未帮助用户自动注册插件,原因是由于 `modern.config.[tj]s` 在项目生命周期中变化比较复杂,可能存在模块之间互相引用问题,让用户手动注册能保证修改配置的正确性。
|
50
|
+
|
51
|
+
在后续定制化的开发中,如果有类似的需求,也可以通过提示的方式给到使用方操作指南,让用户对文件进行手动操作。
|
52
|
+
:::
|
53
|
+
|
54
|
+
:::warning
|
55
|
+
执行 new 命令时可能会出现需要开启的功能不在列表中,需要检查一下项目 `package.json` 中是否已经安装对应功能的插件,如果仍需使用 new 命令开启,需要先手动移除对应的插件依赖。
|
56
|
+
:::
|
57
|
+
|
58
|
+
## Npm 模块
|
59
|
+
|
60
|
+
Npm 模块项目通过 `@modern-js/module-tools` 提供 new 命令。
|
61
|
+
|
62
|
+
new 命令提供了启用可选功能的能力。
|
63
|
+
|
64
|
+
例如:
|
65
|
+
|
66
|
+
开启 Storybook 能力:
|
67
|
+
|
68
|
+
```bash
|
69
|
+
npm run new
|
70
|
+
? 请选择你想要的操作 启用可选功能
|
71
|
+
? 请选择功能名称 启用「Storybook」
|
72
|
+
```
|
73
|
+
|
74
|
+
执行完成后将会在项目安装 Storybook 插件相关依赖,增加 `storybook` 命令,创建 `stories` 目录用于 Storybook 模块的开发并提供提示信息用于注册 Storybook 插件。
|
75
|
+
|
76
|
+
## Monorepo
|
77
|
+
|
78
|
+
Monorepo 项目通过 `@modern-js/monorepo-tools` 提供 new 命令。
|
79
|
+
|
80
|
+
new 命令提供了创建子项目的能力。
|
81
|
+
|
82
|
+
例如:
|
83
|
+
|
84
|
+
创建 Web 应用子项目:
|
85
|
+
|
86
|
+
```bash
|
87
|
+
? 请选择你想创建的工程类型 Web 应用
|
88
|
+
? 请填写子项目名称 web_app
|
89
|
+
? 请填写子项目目录名称 web_app
|
90
|
+
? 请选择开发语言 TS
|
91
|
+
? 请选择构建工具 webpack
|
92
|
+
```
|
93
|
+
|
94
|
+
执行完成后将会在项目 apps 目录创建 `web_app` 的子项目,在子项目目录中依然可以执行 new 命令创建项目元素和开启功能。
|