@modern-js/main-doc 2.21.1 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -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/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/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/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 命令创建项目元素和开启功能。
|