@modern-js/main-doc 0.0.0-next-1685518456147 → 0.0.0-next-1685534893515
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 +2 -2
- 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,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 模块
|
|
6
|
-
|
|
7
|
-
## 项目创建
|
|
8
|
-
|
|
9
|
-
创建项目时配置,`@modern-js/create` 使用 `--config` 参数时使用的配置,也是在生成器插件中修改和添加 input 时使用的配置。
|
|
10
|
-
|
|
11
|
-
模块项目默认包含通用配置,通用配置可查看[通用配置](/guides/topic-detail/generator/config/common)。
|
|
12
|
-
|
|
13
|
-
### packageName
|
|
14
|
-
|
|
15
|
-
包名(packageName),字符串类型,为输入值。
|
|
16
|
-
|
|
17
|
-
## New 命令
|
|
18
|
-
|
|
19
|
-
模块项目中 new 命令配置, 可以在执行 new 命令时通过 `--config` 参数配置,也可在生成器插件中创建元素和启用功能时使用。
|
|
20
|
-
|
|
21
|
-
### actionType
|
|
22
|
-
|
|
23
|
-
New 命令的操作类型(actionType),类型支持一种:
|
|
24
|
-
|
|
25
|
-
- function 启用功能
|
|
26
|
-
|
|
27
|
-
:::info
|
|
28
|
-
在生成器插件中使用启用功能和创建元素时不需要该参数,生成器插件中自动添加该参数。
|
|
29
|
-
|
|
30
|
-
:::
|
|
31
|
-
|
|
32
|
-
### function
|
|
33
|
-
|
|
34
|
-
可选功能名称(function),支持如下选项:
|
|
35
|
-
|
|
36
|
-
- Tailwind CSS(tailwindcss)
|
|
37
|
-
|
|
38
|
-
- Storybook(storybook)
|
|
39
|
-
|
|
40
|
-
- Runtime API(runtimeApi)
|
|
41
|
-
|
|
42
|
-
- 测试(test)
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Monorepo
|
|
6
|
-
|
|
7
|
-
Monorepo 项目默认只需要 [PackageManager 配置](/guides/topic-detail/generator/config/common#packagemanager)。
|
|
8
|
-
|
|
9
|
-
## 创建子项目
|
|
10
|
-
|
|
11
|
-
Monorepo 项目支持通过使用 new 命令创建子项目,子项目类型支持应用、测试应用、模块、内部模块,除了应用和模块各自的配置外,这里还需要一些通用的子项目配置。
|
|
12
|
-
|
|
13
|
-
### solution
|
|
14
|
-
|
|
15
|
-
子项目类型(solution),不同子项目类型字段为:
|
|
16
|
-
|
|
17
|
-
- 应用(mwa)
|
|
18
|
-
- 应用(测试)(mwa_test)
|
|
19
|
-
- 模块(module)
|
|
20
|
-
- 模块(内部)(inner_module)
|
|
21
|
-
|
|
22
|
-
### packageName
|
|
23
|
-
|
|
24
|
-
子项目名称(packageName),字符串类型。
|
|
25
|
-
|
|
26
|
-
### packagePath
|
|
27
|
-
|
|
28
|
-
子项目路径(packagePath),字符串类型。
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 为什么需要生成器插件
|
|
6
|
-
|
|
7
|
-
Modern.js 提供了应用、模块和 Monorepo 三种工程方案,并通过使用 `@modern-js/create` 工具可以创建三种工程方案的初始项目模板,初始项目模板会提供基本的代码开发环境、简单的示例代码及配置等。
|
|
8
|
-
|
|
9
|
-
Modern.js 提供的初始化模板具有通用性,能满足一些通用的项目开发需求。
|
|
10
|
-
|
|
11
|
-
当你深度使用 Modern.js 时,必然会发现每次创建的项目都会进行一些针对自身项目的特定的相似改动,比如修改示例代码、增加一些配置、开启某些功能等。
|
|
12
|
-
|
|
13
|
-
生成器插件可以帮你将这些针对个人或团队特定的改动沉淀下来,在执行 `npx @modern-js/create@latest` 只需简单的带上 `--plugin` 参数即可避免每次创建完项目都需重复性修改项目的工作。
|
|
14
|
-
|
|
15
|
-
生成器插件是在 Modern.js 提供的初始化模板项目的基础上,提供对模板进行增加、删除、修改的方法,并通过快捷的方式修改 `package.json`、`modernConfig` 配置和开启功能等操作。
|
|
16
|
-
|
|
17
|
-
生成器插件提供了两种定制化方式:
|
|
18
|
-
|
|
19
|
-
1. 扩展工程方案:直接对默认提供的三大工程方案进行定制化
|
|
20
|
-
|
|
21
|
-
2. 创建工程方案场景:基于默认的三大工程方案创建对应的工程方案场景
|
|
22
|
-
|
|
23
|
-
接下来将会逐步介绍如何使用和开发生成器插件。
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 4
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addFile
|
|
6
|
-
|
|
7
|
-
添加单个文件。用于添加 `templates` 目录的单个模板文件或者直接使用模板添加到模板文件。
|
|
8
|
-
|
|
9
|
-
该方法可用于任何文件类型,对于二进制以外的文件类型,添加文件时会进行 Handlebars 渲染。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export interface AddFileParams {
|
|
17
|
-
type: FileType;
|
|
18
|
-
file: string;
|
|
19
|
-
template?: string;
|
|
20
|
-
templateFile?: string;
|
|
21
|
-
force?: boolean;
|
|
22
|
-
data?: Record<string, string>;
|
|
23
|
-
}
|
|
24
|
-
export type ForgedAPI = {
|
|
25
|
-
addFile: (params: AddFileParams) => Promise<void>;
|
|
26
|
-
...
|
|
27
|
-
};
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## type
|
|
31
|
-
|
|
32
|
-
文件类型,具体可查看[文件类型](/guides/topic-detail/generator/plugin/api/file/introduce#文件类型)。
|
|
33
|
-
|
|
34
|
-
## file
|
|
35
|
-
|
|
36
|
-
创建的目标文件路径。
|
|
37
|
-
|
|
38
|
-
## template
|
|
39
|
-
|
|
40
|
-
文件模板,配置该字段值可直接用于模板渲染文件。优先级低于 templateFile。
|
|
41
|
-
|
|
42
|
-
## templateFile
|
|
43
|
-
|
|
44
|
-
模板文件,用于渲染的模板文件路径,其值为 `templates` 的相对路径即可。
|
|
45
|
-
|
|
46
|
-
## force
|
|
47
|
-
|
|
48
|
-
是否强制覆盖,当添加的文件已存在时,默认会冲突报错,设置该值为 true 时,可强制覆盖。
|
|
49
|
-
|
|
50
|
-
## data
|
|
51
|
-
|
|
52
|
-
Handlebars 渲染数据。
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addHelper
|
|
6
|
-
|
|
7
|
-
针对于文本类型文件,增加 Handlebars 的自定义 Help 函数,具体可查看文档[Custom Helpers](https://handlebarsjs.com/guide/#custom-helpers)。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export type ForgedAPI = {
|
|
15
|
-
addHelper: (name: string, fn: Handlebars.HelperDelegate) => void;
|
|
16
|
-
...
|
|
17
|
-
};
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## name
|
|
21
|
-
|
|
22
|
-
help 函数名称。
|
|
23
|
-
|
|
24
|
-
## fn
|
|
25
|
-
|
|
26
|
-
help 函数实现。
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 5
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addManyFile
|
|
6
|
-
|
|
7
|
-
批量添加文件。用于添加 `templates` 目录的多个文件。
|
|
8
|
-
|
|
9
|
-
该方法可用于任何文件类型,对于二进制以外的文件类型,添加文件时会进行 Handlebars 渲染。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 `api` 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export interface AddManyFilesParams {
|
|
17
|
-
type: FileType;
|
|
18
|
-
destination: string;
|
|
19
|
-
templateFiles: string[] | (() => string[]);
|
|
20
|
-
templateBase?: string;
|
|
21
|
-
fileNameFunc?: (name: string) => string;
|
|
22
|
-
data?: Record<string, string>; // template data
|
|
23
|
-
}
|
|
24
|
-
export type ForgedAPI = {
|
|
25
|
-
addManyFiles: (params: AddManyFilesParams) => Promise<void>;
|
|
26
|
-
...
|
|
27
|
-
};
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## type
|
|
31
|
-
|
|
32
|
-
文件类型,具体可查看[文件类型](/guides/topic-detail/generator/plugin/api/file/introduce#文件类型)。
|
|
33
|
-
|
|
34
|
-
## destination
|
|
35
|
-
|
|
36
|
-
创建的目标文件夹路径。由于是批量添加文件,这里填写需要写入的文件夹路径即可。
|
|
37
|
-
|
|
38
|
-
## templateFiles
|
|
39
|
-
|
|
40
|
-
模板文件列表。
|
|
41
|
-
该参数支持函数参数,也支持 [globby 正则](https://www.npmjs.com/package/globby)。
|
|
42
|
-
|
|
43
|
-
## templateBase
|
|
44
|
-
|
|
45
|
-
模板基础路径。
|
|
46
|
-
模板路径通常为同一个目录下的模板文件,如果渲染结果需要去除掉模板文件前缀目录,可使用该字段。
|
|
47
|
-
模板渲染文件内容将等于 `templateFiles - templateBase`
|
|
48
|
-
|
|
49
|
-
## fileNameFunc
|
|
50
|
-
|
|
51
|
-
重命名文件函数,在该函数中将一次传入渲染的文件名称,可在该函数中进行重命名。
|
|
52
|
-
|
|
53
|
-
## data
|
|
54
|
-
|
|
55
|
-
Handlebars 渲染数据。
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# addPartial
|
|
6
|
-
|
|
7
|
-
针对于文本类型文件,增加 Handlebars 的自定义 Partial 片段,具体可查看文档[Partials](https://handlebarsjs.com/guide/#partials)。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export type ForgedAPI = {
|
|
15
|
-
addPartial: (name: string, str: Handlebars.Template) => void;
|
|
16
|
-
...
|
|
17
|
-
};
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## name
|
|
21
|
-
|
|
22
|
-
partial 名称。
|
|
23
|
-
|
|
24
|
-
## str
|
|
25
|
-
|
|
26
|
-
partial 模板字符串。
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 介绍
|
|
6
|
-
|
|
7
|
-
文件操作 API 可在 `onForged` 生命周期函数中使用,可对当前项目文件进行增、删、改的操作。
|
|
8
|
-
|
|
9
|
-
文件操作 API 相关路径填写项目相对路径即可,生成器插件会自动添加当前项目路径前缀。
|
|
10
|
-
|
|
11
|
-
## 文件类型
|
|
12
|
-
|
|
13
|
-
生成器插件将文件类型分为一下几类:
|
|
14
|
-
|
|
15
|
-
- 文本文件:纯文本内容文件,可使用 handlebars 进行模板处理的文件。
|
|
16
|
-
|
|
17
|
-
- 二进制文件:图片、音频、视频等文件
|
|
18
|
-
|
|
19
|
-
:::warning
|
|
20
|
-
使用变量的 jsx 或 tsx 文件为二进制文件,其语法与 handlebars 渲染冲突,会造成模板文件创建失败。
|
|
21
|
-
|
|
22
|
-
:::
|
|
23
|
-
|
|
24
|
-
- JSON 文件:JSON 格式的文件,例如 `package.json`、 `tsconfig.json`。
|
|
25
|
-
|
|
26
|
-
- 文本列表文件:文件由行文本组成的文件,例如 `.gitignore`, `.editorconfig`, `.npmrc`。
|
|
27
|
-
|
|
28
|
-
生成器插件的文件操作 API 将是针对这四种文件类型进行操作。
|
|
29
|
-
|
|
30
|
-
其类型定义为:
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
export enum FileType {
|
|
34
|
-
Text = 'text',
|
|
35
|
-
Binary = 'binary',
|
|
36
|
-
Json = 'json',
|
|
37
|
-
TextRaw = 'textRaw',
|
|
38
|
-
}
|
|
39
|
-
```
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 10
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# rmDir
|
|
6
|
-
|
|
7
|
-
删除文件夹。该方法会递归的删除文件夹下的所有文件。
|
|
8
|
-
|
|
9
|
-
该方法可用于任何文件类型。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export type ForgedAPI = {
|
|
17
|
-
rmDir: (dirName: string) => Promise<void>;
|
|
18
|
-
...
|
|
19
|
-
};
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## dirName
|
|
23
|
-
|
|
24
|
-
需删除的文件夹名称或文件夹路径。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 9
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# rmFile
|
|
6
|
-
|
|
7
|
-
删除文件。
|
|
8
|
-
|
|
9
|
-
该方法可用于任何文件类型。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export type ForgedAPI = {
|
|
17
|
-
rmFile: (fileName: string) => Promise<void>;
|
|
18
|
-
...
|
|
19
|
-
};
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## fileName
|
|
23
|
-
|
|
24
|
-
需删除的文件名称或文件路径。
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 6
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# updateJSONFile
|
|
6
|
-
|
|
7
|
-
更新 JSON 文件字段。
|
|
8
|
-
|
|
9
|
-
该方法适用于 JSON 文件类型,可批量更新 JSON 文件中字段值。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export type ForgedAPI = {
|
|
17
|
-
updateJSONFile: (
|
|
18
|
-
fileName: string,
|
|
19
|
-
updateInfo: Record<string, unknown>,
|
|
20
|
-
) => Promise<void>;
|
|
21
|
-
...
|
|
22
|
-
};
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## fileName
|
|
26
|
-
|
|
27
|
-
JSON 文件的文件名或者文件路径。
|
|
28
|
-
|
|
29
|
-
## updateInfo
|
|
30
|
-
|
|
31
|
-
字段更新信息。
|
|
32
|
-
|
|
33
|
-
该信息使用 `Record` 形式表示。
|
|
34
|
-
|
|
35
|
-
例如需要更新 name 字段:
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
api.updateJSONFile(file, {
|
|
39
|
-
name: '新名称',
|
|
40
|
-
});
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
需更新嵌套字段:
|
|
44
|
-
|
|
45
|
-
```ts
|
|
46
|
-
api.updateJSONFile(file, {
|
|
47
|
-
'dependencies.name': '新名称',
|
|
48
|
-
});
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
:::warning
|
|
52
|
-
更新嵌套字段时注意字段名,如果不是全量更新,需将嵌套的 key 也写入字段名中。
|
|
53
|
-
|
|
54
|
-
:::
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 8
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# updateModernConfig
|
|
6
|
-
|
|
7
|
-
更新 `package.json` 中 `modernConfig` 字段。
|
|
8
|
-
|
|
9
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export type ForgedAPI = {
|
|
15
|
-
updateModernConfig: (updateInfo: Record<string, any>) => Promise<void>;
|
|
16
|
-
...
|
|
17
|
-
};
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## updateInfo
|
|
21
|
-
|
|
22
|
-
字段更新信息。
|
|
23
|
-
|
|
24
|
-
:::info
|
|
25
|
-
该函数为 updateJSONFile 的封装,将自动更新 `package.json` 的 `modernConfig` 字段 `updateInfo` 中只需填写相对于 `modernConfig` 的更新信息即可。
|
|
26
|
-
|
|
27
|
-
:::
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 7
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# updateTextRawFile
|
|
6
|
-
|
|
7
|
-
更新文本列表文件内容。
|
|
8
|
-
|
|
9
|
-
该方法适用与文本列表文件类型。
|
|
10
|
-
|
|
11
|
-
该方法可在 `onForged` 生命周期的 api 参数上获取。
|
|
12
|
-
|
|
13
|
-
其类型定义为:
|
|
14
|
-
|
|
15
|
-
```ts
|
|
16
|
-
export type ForgedAPI = {
|
|
17
|
-
updateTextRawFile: (
|
|
18
|
-
fileName: string,
|
|
19
|
-
update: (content: string[]) => string[],
|
|
20
|
-
) => Promise<void>;
|
|
21
|
-
...
|
|
22
|
-
};
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## fileName
|
|
26
|
-
|
|
27
|
-
文本列表文件的文件名或者文件路径。
|
|
28
|
-
|
|
29
|
-
## update
|
|
30
|
-
|
|
31
|
-
更新函数。
|
|
32
|
-
|
|
33
|
-
该函数参数为当前文件内容,内容将以 '\n' 分割,以数组的形式传入函数,函数的返回值也是数组,内部将自动以 '\n' 合并,写入源文件。
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# gitAddAndCommit
|
|
6
|
-
|
|
7
|
-
提交当前仓库变更。
|
|
8
|
-
|
|
9
|
-
其类型定义为:
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
export type AfterForgedAPI = {
|
|
13
|
-
gitAddAndCommit: (commitMessage: string) => Promise<void>;
|
|
14
|
-
...
|
|
15
|
-
};
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## commitMessage
|
|
19
|
-
|
|
20
|
-
提交信息。
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# AfterForged
|
|
6
|
-
|
|
7
|
-
`afterForged` 函数为生成器插件生命周期函数,其通常用于定义安装依赖、Git 等操作,这些操作将会在 `onForged` 函数执行完成后进行。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export type PluginAfterForgedFunc = (
|
|
15
|
-
api: AfterForgedAPI,
|
|
16
|
-
inputData: Record<string, unknown>,
|
|
17
|
-
) => Promise<void>;
|
|
18
|
-
|
|
19
|
-
export interface IPluginContext {
|
|
20
|
-
afterForged: (func: PluginAfterForgedFunc) => void;
|
|
21
|
-
...
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## func
|
|
26
|
-
|
|
27
|
-
`afterForged` 参数是一个回调函数,函数参数为 `api` 和 `inputData。`
|
|
28
|
-
|
|
29
|
-
### api
|
|
30
|
-
|
|
31
|
-
在 `afterForged` 生命周期中支持的函数列表,具体可查看 [Git API](/guides/topic-detail/generator/plugin/api/git/isInGitRepo) 和 [NPM API](/guides/topic-detail/generator/plugin/api/npm/install)。
|
|
32
|
-
|
|
33
|
-
### inputData
|
|
34
|
-
|
|
35
|
-
当前用户输入,可用于获取用户当前的输入信息及配置信息。
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 1
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# OnForged
|
|
6
|
-
|
|
7
|
-
`onForged` 函数为生成器插件生命周期函数,其通常用于定义文件类型操作,这些操作将在 base 的工程方案文件操作完成后进行。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export type PluginForgedFunc = (
|
|
15
|
-
api: ForgedAPI,
|
|
16
|
-
inputData: Record<string, unknown>,
|
|
17
|
-
) => void | Promise<void>;
|
|
18
|
-
|
|
19
|
-
export interface IPluginContext {
|
|
20
|
-
onForged: (func: PluginForgedFunc) => void;
|
|
21
|
-
...
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## func
|
|
26
|
-
|
|
27
|
-
`onForged` 参数是一个回调函数,函数参数为 api 和 inputData。
|
|
28
|
-
|
|
29
|
-
### api
|
|
30
|
-
|
|
31
|
-
在 `onForged` 生命周期中支持的函数列表,具体可查看[文件操作 API](/guides/topic-detail/generator/plugin/api/file/introduce) 和[启用功能 API](/guides/topic-detail/generator/plugin/api/new/introduce)。
|
|
32
|
-
|
|
33
|
-
### inputData
|
|
34
|
-
|
|
35
|
-
当前用户输入,可用于获取用户当前的输入信息及配置信息。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 2
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# isFileExist
|
|
6
|
-
|
|
7
|
-
判断文件是否存在。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface IPluginContext {
|
|
15
|
-
isFileExist: (fileName: string) => Promise<boolean>;
|
|
16
|
-
...
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## fileName
|
|
21
|
-
|
|
22
|
-
需要判断的文件名或者文件路径,基于创建的项目的相对路径即可。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 3
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# readDir
|
|
6
|
-
|
|
7
|
-
读取文件夹,获取文件列表。
|
|
8
|
-
|
|
9
|
-
该方法可直接在 context 上获取。
|
|
10
|
-
|
|
11
|
-
其类型定义为:
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface IPluginContext {
|
|
15
|
-
readDir: (dir: string) => Promise<string[]>;
|
|
16
|
-
...
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## dir
|
|
21
|
-
|
|
22
|
-
文件夹名称或路径,基于创建的项目的相对路径即可。
|