@modern-js/main-doc 0.0.0-next-1685518456147 → 0.0.0-next-1685530921784
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 +6 -6
- package/docs/en/components/language-config.mdx +9 -0
- package/docs/en/components/package-manager.mdx +11 -0
- 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/zh/components/language-config.mdx +9 -0
- package/docs/zh/components/package-manager.mdx +11 -0
- 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/package.json +5 -5
- 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/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
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addInputAfter
|
|
6
|
-
|
|
7
|
-
在默认输入后添加输入问题。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface IPluginContext {
|
|
15
|
-
addInputAfter: (key: string, input: Schema) => void;
|
|
16
|
-
...
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## key
|
|
21
|
-
|
|
22
|
-
Modern.js 工程方案的配置的问题关键字,具体配置可查看[生成器配置](/guides/topic-detail/generator/config/common)。
|
|
23
|
-
|
|
24
|
-
## input
|
|
25
|
-
|
|
26
|
-
需要添加的问题,具体类型定义可查看[自定义输入相关类型定义](/guides/topic-detail/generator/plugin/api/input/type)。
|
|
27
|
-
|
|
28
|
-
## 示例
|
|
29
|
-
|
|
30
|
-
在包管理工具后面添加输入:
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
context.addInputAfter('packageManager', {
|
|
34
|
-
type: 'object',
|
|
35
|
-
properties: {
|
|
36
|
-
language: {
|
|
37
|
-
type: 'string',
|
|
38
|
-
title: '开发语言',
|
|
39
|
-
enum: [
|
|
40
|
-
{ label: 'TS', value: 'ts' },
|
|
41
|
-
{ label: 'ES6+', value: 'js' },
|
|
42
|
-
],
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
:::info
|
|
49
|
-
注意事项
|
|
50
|
-
|
|
51
|
-
1. 添加问题的 key 不能和 Modern.js 提供的项目类型自身的问题的 key 重复
|
|
52
|
-
|
|
53
|
-
2. 添加问题 `addInputAfter` 的优先级高于 `addInputBefore`,当同时对一个 `key` 添加 After 问题和对其后一个 key 添加 Before 问题时,After 问题会在 Before 之前。
|
|
54
|
-
|
|
55
|
-
3. 当需要在相同 `key` 前面或者后面添加多个问题时,可多次调用该方法,问题的顺序会按照调用顺序进行排列。
|
|
56
|
-
|
|
57
|
-
:::
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addInputBefore
|
|
6
|
-
|
|
7
|
-
在默认输入前添加输入问题。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface IPluginContext {
|
|
15
|
-
addInputBefore: (key: string, input: Schema) => void;
|
|
16
|
-
...
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## key
|
|
21
|
-
|
|
22
|
-
Modern.js 工程方案的配置的问题关键字,具体配置可查看[生成器配置](/guides/topic-detail/generator/config/common)。
|
|
23
|
-
|
|
24
|
-
## input
|
|
25
|
-
|
|
26
|
-
需要添加的问题,具体类型定义可查看[自定义输入相关类型定义](/guides/topic-detail/generator/plugin/api/input/type)。
|
|
27
|
-
|
|
28
|
-
## 示例
|
|
29
|
-
|
|
30
|
-
在包管理工具后面添加输入:
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
context.addInputBefore('packageManager', {
|
|
34
|
-
type: 'object',
|
|
35
|
-
properties: {
|
|
36
|
-
language: {
|
|
37
|
-
type: 'string',
|
|
38
|
-
title: '开发语言',
|
|
39
|
-
enum: [
|
|
40
|
-
{ label: 'TS', value: 'ts' },
|
|
41
|
-
{ label: 'ES6+', value: 'js' },
|
|
42
|
-
],
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
:::info 注意事项
|
|
49
|
-
|
|
50
|
-
1. 添加问题的 key 不能和 Modern.js 提供的项目类型自身的问题的 key 重复
|
|
51
|
-
|
|
52
|
-
2. 添加问题 `addInputAfter` 的优先级高于 `addInputBefore`,当同时对一个 `key` 添加 After 问题和对其后一个 key 添加 Before 问题时,After 问题会在 Before 之前。
|
|
53
|
-
|
|
54
|
-
3. 当需要在相同 `key` 前面或者后面添加多个问题时,可多次调用该方法,问题的顺序会按照调用顺序进行排列。
|
|
55
|
-
|
|
56
|
-
:::
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# setInput
|
|
6
|
-
|
|
7
|
-
设置问题属性。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface IPluginContext {
|
|
15
|
-
setInput: (key: string, field: string, value: unknown) => void;
|
|
16
|
-
...
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## key
|
|
21
|
-
|
|
22
|
-
问题关键字,可以为 Modern.js 工程方案的问题关键字,也可以为生成器插件中新增问题的关键字。
|
|
23
|
-
|
|
24
|
-
## filed
|
|
25
|
-
|
|
26
|
-
需设置的问题字段,可修改除了当前 Input 除 key 以外的其他字段,Input 具体类型定义可查看[自定义输入相关类型定义](/guides/topic-detail/generator/plugin/api/input/type)。
|
|
27
|
-
|
|
28
|
-
## value
|
|
29
|
-
|
|
30
|
-
需设置的问题字段值。value 支持函数,函数参数为当前字段值,返回值需要为完整的新的字段值。
|
|
31
|
-
|
|
32
|
-
:::info
|
|
33
|
-
对于 Modern.js 工程类型提供的输入选项,暂时只支持删除,不支持增加,增加会造成代码中的逻辑判断存在问题。
|
|
34
|
-
|
|
35
|
-
:::
|
|
36
|
-
|
|
37
|
-
## 示例
|
|
38
|
-
|
|
39
|
-
修改 packageName 的展示名称
|
|
40
|
-
|
|
41
|
-
```ts
|
|
42
|
-
context.setInput('packageName', 'title', '展示名称');
|
|
43
|
-
```
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 7
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# setInputValue
|
|
6
|
-
|
|
7
|
-
设置输入默认值。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
export interface IPluginContext {
|
|
13
|
-
setInputValue: (value: Record<string, unknown>) => void;
|
|
14
|
-
...
|
|
15
|
-
}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## 示例
|
|
19
|
-
|
|
20
|
-
```ts
|
|
21
|
-
context.setInputValue({
|
|
22
|
-
moduleRunWay: 'no',
|
|
23
|
-
});
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
:::warning
|
|
27
|
-
该方法只支持设置生成器插件集成的工程方案对应的配置参数值,不支持设置工程方案类型(solution)和项目场景(scenes),这两个配置可以通过执行时的 `--config` 参数设置默认值。
|
|
28
|
-
|
|
29
|
-
:::
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 自定义输入相关类型定义
|
|
6
|
-
|
|
7
|
-
## Input
|
|
8
|
-
|
|
9
|
-
Modern.js Input 输入类型采用了开源的 [Formily](https://formilyjs.org/) Schema 结果,支持了部分其 Schema 字段。
|
|
10
|
-
|
|
11
|
-
### type
|
|
12
|
-
|
|
13
|
-
schema 类型,目前生成器插件输入支持的类型为 `string`、`number` 和 `object` 类型。其中 `object` 用于实现 schema 嵌套,需要和 `properties` 配合使用。
|
|
14
|
-
|
|
15
|
-
### name
|
|
16
|
-
|
|
17
|
-
schema 的关键字。
|
|
18
|
-
|
|
19
|
-
### title
|
|
20
|
-
|
|
21
|
-
schema 的展示名称。
|
|
22
|
-
|
|
23
|
-
### default
|
|
24
|
-
|
|
25
|
-
schema 默认值。
|
|
26
|
-
|
|
27
|
-
### enum
|
|
28
|
-
|
|
29
|
-
schema 如果为选择类型,该字段用于定义选项内容。
|
|
30
|
-
|
|
31
|
-
每个选项支持两个字段:
|
|
32
|
-
|
|
33
|
-
- value: 选项值。
|
|
34
|
-
|
|
35
|
-
- label: 展示名称。
|
|
36
|
-
|
|
37
|
-
### x-validator
|
|
38
|
-
|
|
39
|
-
schema 的验证规则。这里支持 Formily 的校验方式,具体可参考 [Formily 表单校验](https://formilyjs.org/zh-CN/guide/advanced/validate)。
|
|
40
|
-
|
|
41
|
-
### x-reactions
|
|
42
|
-
|
|
43
|
-
schema 字段联动。这里支持 Formily 的联动方式,具体可参考 [Formily 实现联动逻辑](https://formilyjs.org/zh-CN/guide/advanced/linkages)。
|
|
44
|
-
|
|
45
|
-
### properties
|
|
46
|
-
|
|
47
|
-
当 schema 类型为 `object` 时,定义其子表单。
|
|
48
|
-
|
|
49
|
-
## 示例
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
const schema = {
|
|
53
|
-
type: 'object',
|
|
54
|
-
properties: {
|
|
55
|
-
language: {
|
|
56
|
-
type: 'string',
|
|
57
|
-
title: '开发语言',
|
|
58
|
-
enum: [
|
|
59
|
-
{ label: 'TS', value: 'ts' },
|
|
60
|
-
{ label: 'ES6+', value: 'js' },
|
|
61
|
-
],
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
```
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 介绍
|
|
6
|
-
|
|
7
|
-
Modern.js 支持通过生成器插件的方式对提供的工程方案进行定制化或针对工程方案进行特定场景的定制化。
|
|
8
|
-
|
|
9
|
-
## 生成器插件构成
|
|
10
|
-
|
|
11
|
-
生成器插件是一个模块,可以直接使用 Modern.js 的模块工程方案开发。当然,Modern.js 也提供了对应的生成器插件(`@modern-js/generator-plugin-plugin`)直接新建生成器插件项目。
|
|
12
|
-
|
|
13
|
-
一个生成器插件项目目录如下:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
.
|
|
17
|
-
├── README.md
|
|
18
|
-
├── package.json
|
|
19
|
-
├── src
|
|
20
|
-
│ ├── index.ts
|
|
21
|
-
│ └── modern-app-env.d.ts
|
|
22
|
-
├── templates
|
|
23
|
-
└── tsconfig.json
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
`src/index.ts` 中为源码目录,用于开发生成器插件逻辑。插件默认导出一个函数,函数参数为 `context`,`context` 上提供一些方法可直接对当前项目进行操作,本章节后续将详细介绍这些方法。
|
|
27
|
-
|
|
28
|
-
`templates` 目录为模板目录,用于存在生成器插件中需要使用的模板文件。
|
|
29
|
-
|
|
30
|
-
## 生成器插件分类
|
|
31
|
-
|
|
32
|
-
生成器插件分为两种:
|
|
33
|
-
|
|
34
|
-
1. 扩展工程方案:直接对默认提供的三大工程方案进行定制化
|
|
35
|
-
|
|
36
|
-
2. 创建工程方案场景:基于默认的三大工程方案创建对应的工程方案场景
|
|
37
|
-
|
|
38
|
-
### 类型定义
|
|
39
|
-
|
|
40
|
-
生成器插件的分类通过 `package.json` 中的 `meta` 信息提供。
|
|
41
|
-
|
|
42
|
-
#### 扩展工程方案
|
|
43
|
-
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"meta": {
|
|
47
|
-
"extend": "mwa"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
`extend` 为扩展的工程方案名称,Modern.js 的工程方案名称分别为 `mwa`、`module`、 `monorepo`。
|
|
53
|
-
|
|
54
|
-
#### 创建工程方案场景
|
|
55
|
-
|
|
56
|
-
```json
|
|
57
|
-
{
|
|
58
|
-
"meta": {
|
|
59
|
-
"key": "new_solution",
|
|
60
|
-
"name": "新工程方案",
|
|
61
|
-
"type": "mwa"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
`key` 为场景方案名称,值为字符串。
|
|
67
|
-
`name` 为场景方案展示名称,用与使用时选项的展示,值为字符串。
|
|
68
|
-
`type` 为工程方案类型,除了和 `extend` 一样支持三种工程方案之外,还支持自定义(custom)类型。
|
|
69
|
-
|
|
70
|
-
### 自定义(custom)类型
|
|
71
|
-
|
|
72
|
-
自定义类型提供了完全自定义工程方案的实现能力,当使用该类型新建工程方案场景时,只提供了少量的开发层面的最佳实践的代码,比如 `.gitignore`、`.editorConfig` 等文件,具体为下方目录结构:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
.
|
|
76
|
-
├── .editorconfig
|
|
77
|
-
├── .gitignore
|
|
78
|
-
├── .idea
|
|
79
|
-
│ ├── codeStyles
|
|
80
|
-
│ │ ├── Project.xml
|
|
81
|
-
│ │ └── codeStyleConfig.xml
|
|
82
|
-
│ ├── inspectionProfiles
|
|
83
|
-
│ │ └── Project_Default.xml
|
|
84
|
-
│ └── jsLinters
|
|
85
|
-
│ └── eslint.xml
|
|
86
|
-
├── .nvmrc
|
|
87
|
-
└── .vscode
|
|
88
|
-
├── extensions.json
|
|
89
|
-
└── settings.json
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
自定义类型保证了可根据自身对工程方案的需求灵活进行配置。
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# createElement
|
|
6
|
-
|
|
7
|
-
创建工程元素,只支持应用工程方案。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export enum ActionElement {
|
|
15
|
-
Entry = 'entry',
|
|
16
|
-
Server = 'server',
|
|
17
|
-
}
|
|
18
|
-
export type ForgedAPI = {
|
|
19
|
-
createElement: (
|
|
20
|
-
element: ActionElement,
|
|
21
|
-
params: Record<string, unknown>,
|
|
22
|
-
) => Promise<void>;
|
|
23
|
-
...
|
|
24
|
-
};
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## element
|
|
28
|
-
|
|
29
|
-
工程元素类型,支持 entry 和 server。
|
|
30
|
-
|
|
31
|
-
## params
|
|
32
|
-
|
|
33
|
-
创建元素的其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/app#new-命令)。
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# createSubProject
|
|
6
|
-
|
|
7
|
-
创建子项目,只支持 Monorepo 工程方案。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export enum SubSolution {
|
|
15
|
-
MWA = 'mwa',
|
|
16
|
-
MWATest = 'mwa_test',
|
|
17
|
-
Module = 'module',
|
|
18
|
-
InnerModule = 'inner_module',
|
|
19
|
-
}
|
|
20
|
-
export type ForgedAPI = {
|
|
21
|
-
createSubProject: (
|
|
22
|
-
solution: SubSolution,
|
|
23
|
-
params: Record<string, unknown>,
|
|
24
|
-
) => Promise<void>;
|
|
25
|
-
...
|
|
26
|
-
};
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## solution
|
|
30
|
-
|
|
31
|
-
子项目工程方案名称。
|
|
32
|
-
|
|
33
|
-
## params
|
|
34
|
-
|
|
35
|
-
创建子项目的其他参数,详细参考[Monorepo 创建子项目](/guides/topic-detail/generator/config/monorepo#创建子项目)。
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# enableFunc
|
|
6
|
-
|
|
7
|
-
启用功能,支持应用和模块工程方案。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export enum ActionFunction {
|
|
15
|
-
UnBundle = 'unbundle',
|
|
16
|
-
TailwindCSS = 'tailwindcss',
|
|
17
|
-
BFF = 'bff',
|
|
18
|
-
MicroFrontend = 'micro_frontend',
|
|
19
|
-
I18n = 'i18n',
|
|
20
|
-
Test = 'test',
|
|
21
|
-
E2ETest = 'e2e_test',
|
|
22
|
-
Doc = 'doc',
|
|
23
|
-
Storybook = 'storybook',
|
|
24
|
-
RuntimeApi = 'runtimeApi',
|
|
25
|
-
SSG = 'ssg',
|
|
26
|
-
Polyfill = 'polyfill',
|
|
27
|
-
Deploy = 'deploy',
|
|
28
|
-
}
|
|
29
|
-
export type ForgedAPI = {
|
|
30
|
-
enableFunc: (
|
|
31
|
-
func: ActionFunction,
|
|
32
|
-
params?: Record<string, unknown> | undefined,
|
|
33
|
-
) => Promise<void>;
|
|
34
|
-
...
|
|
35
|
-
};
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## func
|
|
39
|
-
|
|
40
|
-
功能名称,根据不用的工程方案支持的功能进行传值。
|
|
41
|
-
|
|
42
|
-
## params
|
|
43
|
-
|
|
44
|
-
启用功能时其他参数,详细参考[应用 New 命令](/guides/topic-detail/generator/config/app#new-命令)和[模块 New 命令](/guides/topic-detail/generator/config/module#new-命令)。
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 介绍
|
|
6
|
-
|
|
7
|
-
Modern.js 提供的三个工程方案支持在项目中执行 new 命令创建元素和开启功能。在生成器插件中可直接调用相关 API 默认创建一些元素和开启支持的功能。
|
|
8
|
-
|
|
9
|
-
不同的工程方案支持的 new 操作:
|
|
10
|
-
|
|
11
|
-
- [Web 应用](/guides/topic-detail/generator/config/app#new-命令)
|
|
12
|
-
|
|
13
|
-
- [模块](/guides/topic-detail/generator/config/module#new-命令)
|
|
14
|
-
|
|
15
|
-
- [Monorepo](/guides/topic-detail/generator/config/monorepo#创建子项目)
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 如何开发生成器插件
|
|
6
|
-
|
|
7
|
-
## 创建项目
|
|
8
|
-
|
|
9
|
-
Modern.js 提供了生成器插件用于创建开发项目,可直接执行以下命令创建:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx @modern-js/create@latest plugin --plugin @modern-js/generator-plugin-plugin
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
插件类型不同,会提问不同的问题,可根据需求选择插件类型
|
|
16
|
-
|
|
17
|
-
### 扩展工程方案
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
? 请选择你想创建的工程类型 Npm 模块
|
|
21
|
-
? 请选择项目场景 生成器插件
|
|
22
|
-
? 请输入生成器插件插件包名 plugin
|
|
23
|
-
? 请选择开发语言 TS
|
|
24
|
-
? 请选择包管理工具 pnpm
|
|
25
|
-
? 请选择插件类型 扩展
|
|
26
|
-
? 请选择插件基础类型 应用
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 创建工程方案场景
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
? 请选择你想创建的工程类型:Npm 模块
|
|
33
|
-
? 请选择项目场景:生成器插件
|
|
34
|
-
? 请输入生成器插件插件包名 plugin
|
|
35
|
-
? 请选择开发语言 TS
|
|
36
|
-
? 请选择包管理工具 pnpm
|
|
37
|
-
? 请选择插件类型 自定义
|
|
38
|
-
? 请输入插件关键字 mobile-app
|
|
39
|
-
? 请输入插件展示名称 移动应用
|
|
40
|
-
? 请选择插件基础类型 应用
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
创建项目命令执行完成后,会对应的生成一个开发生成器插件的项目,`package.json` 中也会根据你的选择对应的生成 `meta` 信息。
|
|
44
|
-
|
|
45
|
-
:::info
|
|
46
|
-
生成器插件开发可参考 `@modern-js/generator-plugin-plugin` [源码地址](https://github.com/web-infra-dev/modern.js/tree/main/packages/generator/plugins/generator-plugin)
|
|
47
|
-
|
|
48
|
-
:::
|
|
49
|
-
|
|
50
|
-
## 开发插件逻辑
|
|
51
|
-
|
|
52
|
-
在 `src/index.ts` 中完成插件逻辑开发。
|
|
53
|
-
|
|
54
|
-
插件默认导出一个函数,函数参数为 `context`,`context` 上提供一些方法可直接对当前项目进行操作。
|
|
55
|
-
|
|
56
|
-
简单介绍一下提供的方法,完整的 API 列表可查看[生成器插件 API](/guides/topic-detail/generator/plugin/api/introduce)。
|
|
57
|
-
|
|
58
|
-
### 自定义输入
|
|
59
|
-
|
|
60
|
-
- addInputBefore
|
|
61
|
-
|
|
62
|
-
在默认的输入前添加输入,比如在`选择包管理工具`问题前添加问题,具体 Modern.js 每个问题的配置可查看[工程方案配置](/guides/topic-detail/generator/config/common)。
|
|
63
|
-
|
|
64
|
-
```ts
|
|
65
|
-
context.addInputBefore('input2', {
|
|
66
|
-
type: 'object',
|
|
67
|
-
properties: {
|
|
68
|
-
'input1.2': {
|
|
69
|
-
type: 'string',
|
|
70
|
-
title: 'input1.2',
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
- setInput
|
|
77
|
-
|
|
78
|
-
设置已经存在问题的属性
|
|
79
|
-
|
|
80
|
-
```ts
|
|
81
|
-
context.setInput('test', 'type', 'number');
|
|
82
|
-
context.setInput('test', 'enum', [{ value: 'option1', label: '选项一' }]);
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### onForged
|
|
86
|
-
|
|
87
|
-
工程方案类型文件相关操作执行完成后钩子,多个扩展产检将按照 `plugin` 参数顺序依次执行其 `onForged` 函数。
|
|
88
|
-
|
|
89
|
-
`onForged` 参数是一个回调函数,函数参数为 `api` 和 `input`。
|
|
90
|
-
|
|
91
|
-
`api` 上会提供一些文件操作相关的方法,可在该钩子中对当前的模板文件进行操作。
|
|
92
|
-
|
|
93
|
-
`input` 为当前用户输入,可用于获取用户当前的输入信息及配置信息。
|
|
94
|
-
|
|
95
|
-
当需要新的模板文件时,可直接在 `templates` 目录添加,在 `onForged` 函数中可直接对 `templates` 目录文件进行操作,比如下方的 `addFile` 中 `templateFile` 参数就为 `templates` 目录下的文件。这里不需要显示的声明 `templates`,直接写相对于 `templates` 的相对路径即可。
|
|
96
|
-
|
|
97
|
-
`onForged` 中支持的 API 函数也可参考 [生成器插件 API](/guides/topic-detail/generator/plugin/api/hook/onForged)。
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
context.onForged(async (api: ForgedAPI, input: Record<string, unknown>) => {
|
|
101
|
-
const { language } = input;
|
|
102
|
-
api.addFile({
|
|
103
|
-
type: FileType.Text,
|
|
104
|
-
file: `src/index.${language as string}`,
|
|
105
|
-
templateFile: `index.${language as string}.handlebars`,
|
|
106
|
-
force: true,
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### afterForged
|
|
112
|
-
|
|
113
|
-
`onForged` 函数执行完成后钩子,这里主要可进行安装依赖,Git 操作等。
|
|
114
|
-
|
|
115
|
-
如果你的工程方案是基于 Modern.js 提供的三种工程方案进行的,这个钩子函数是可以不需要的。默认的工程方案中会自动包含安装依赖、提交代码逻辑。
|
|
116
|
-
|
|
117
|
-
生成器插件还支持了一种自定义的 `custom` 类型,这种类型只提供了少量的开发层面的最佳实践的代码,比如 `.gitignore`、`.editorConfig` 等文件,这时则需要在 `afterForged` 函数中手动补充安装依赖和 Git 操作逻辑。
|
|
118
|
-
|
|
119
|
-
`afterForged` 参数也是一个回调函数,函数参数为 `api` 和 `input`。
|
|
120
|
-
|
|
121
|
-
`api` 上会提供一些 npm、Git 等方法,可在该钩子中进行安装依赖,Git 操作。
|
|
122
|
-
|
|
123
|
-
`input` 为当前用户输入,可用于获取用户当前的输入信息及配置信息。
|
|
124
|
-
|
|
125
|
-
`afterForged` 中支持的 API 函数也可参考 [生成器插件 API](/guides/topic-detail/generator/plugin/api/hook/afterForged)。
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 如何使用生成器插件
|
|
6
|
-
|
|
7
|
-
`@modern-js/create` 提供了 `--plugin` 参数用于声明使用的生成器插件。
|
|
8
|
-
|
|
9
|
-
你可直接执行下面命令使用生成器插件:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx @modern-js/create@latest --plugin <pluginName>
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
plugin 参数支持声明多次,代表同时使用多个生成器插件。
|
|
16
|
-
|
|
17
|
-
## 生成器插件分类
|
|
18
|
-
|
|
19
|
-
生成器插件分为两种:
|
|
20
|
-
|
|
21
|
-
1. 扩展工程方案:直接对默认提供的三大工程方案进行定制化。
|
|
22
|
-
|
|
23
|
-
2. 创建工程方案场景:基于默认的三大工程方案创建对应的工程方案场景。
|
|
24
|
-
|
|
25
|
-
### 类型定义
|
|
26
|
-
|
|
27
|
-
生成器插件的分类通过 `package.json` 中的 `meta` 信息提供。
|
|
28
|
-
|
|
29
|
-
#### 扩展工程方案
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"meta": {
|
|
34
|
-
"extend": "mwa" // 三个工程方案分别对应 mwa、module、 monorepo
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
#### 创建工程方案场景
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"meta": {
|
|
44
|
-
"key": "new_solution",
|
|
45
|
-
"name": "新工程方案",
|
|
46
|
-
"type": "mwa" // 除了三大工程方案,这里类型还支持自定义(custom)类型,后面会详细介绍
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 执行时机
|
|
52
|
-
|
|
53
|
-
不同类型的定制工程方案的执行时机是不同的。
|
|
54
|
-
|
|
55
|
-
#### 扩展工程方案
|
|
56
|
-
|
|
57
|
-
扩展工程方案类型的生成器插件会在选择对应 extend 的工程方案后按照 plugin 参数的声明顺序依次执行。
|
|
58
|
-
|
|
59
|
-
#### 创建工程方案场景
|
|
60
|
-
|
|
61
|
-
创建工程方案场景的生成器插件会在选择对应类型的工程方案之后出现选择场景的选项,选项列表包括当前默认的工程方案场景和插件定义的工程方案场景,选择对应的场景,将会执行对应的生成器插件。
|