@modern-js/main-doc 2.0.0-beta.1 → 2.0.0-beta.2
Sign up to get free protection for your applications and to get access to all the features.
- package/.turbo/turbo-build.log +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/build.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/dev.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/lint.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/new.md +1 -2
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/start.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/commands/test.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/overview.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/auto-actions.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/connect.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-app.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/create-store.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/handle-effect.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/model_.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-local-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-static-model.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/model/use-store.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/components/command-tip.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/components/reduck-tip.md +5 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/output/disable-css-extract.md +12 -0
- package/en/docusaurus-plugin-content-docs/current/configure/app/runtime/router.md +1 -1
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/app.md +152 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/ejs.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/fs.md +54 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/git.md +49 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/handlebars.md +58 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/json.md +59 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/npm.md +49 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/develop.md +52 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/introduce.md +46 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/run-in-js.md +48 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/structure.md +87 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/common.md +106 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/module.md +39 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/monorepo.md +28 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/config/mwa.md +89 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/abstract.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addFile.md +52 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addHelper.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addManyFile.md +58 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/addPartial.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/introduce.md +38 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/rmDir.md +24 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/rmFile.md +24 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +54 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateModernConfig.md +26 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.md +33 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/gitAddAndCommit.md +20 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/initGitRepo.md +16 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/git/isInGitRepo.md +16 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/afterForged.md +35 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/hook/onForged.md +36 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/isFileExit.md +22 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/locale.md +17 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/info/readDir.md +22 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +57 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +56 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/setInput.md +42 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/setInputValue.md +30 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/input/type.md +65 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/introduce.md +91 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/createElement.md +33 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/createSubProject.md +35 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/enableFunc.md +44 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/new/introduce.md +15 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/npm/_category_.json +4 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/api/npm/install.md +18 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/develop.md +125 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/plugin/use.md +61 -0
- package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/project.md +118 -0
- package/en/docusaurus-plugin-content-docs/current.json +39 -3
- package/package.json +3 -3
- package/scripts/summary.en.json +1 -1
- package/scripts/summary.zh.json +1 -1
- package/zh/apis/app/commands/new.md +0 -1
- package/zh/apis/app/hooks/server/test.md +2 -2
- package/zh/apis/app/runtime/web-server/hook.md +4 -4
- package/zh/apis/app/runtime/web-server/middleware.md +4 -4
- package/zh/configure/app/output/disable-css-extract.md +12 -0
- package/zh/guides/advanced-features/bff/_category_.json +5 -1
- package/zh/guides/advanced-features/bff/bff-proxy.md +5 -3
- package/zh/guides/advanced-features/bff/frameworks.md +72 -51
- package/zh/guides/advanced-features/bff/function.md +16 -30
- package/zh/guides/advanced-features/bff/index.md +20 -0
- package/zh/guides/advanced-features/bff/type.md +43 -0
- package/zh/guides/advanced-features/custom-app.md +63 -1
- package/zh/guides/advanced-features/web-server.md +21 -110
- package/zh/guides/basic-features/data-fetch.md +61 -0
- package/zh/guides/basic-features/env-vars.md +88 -41
- package/zh/guides/basic-features/routes.md +267 -0
- package/zh/guides/concept/entries.md +112 -0
- package/zh/guides/concept/lifecycle.md +10 -0
- package/zh/guides/get-started/quick-start.md +199 -1
- package/zh/guides/get-started/upgrade.md +75 -1
- package/zh/guides/topic-detail/generator/codesmith/api/_category_.json +4 -0
- package/zh/guides/topic-detail/generator/codesmith/api/app.md +152 -0
- package/zh/guides/topic-detail/generator/codesmith/api/ejs.md +56 -0
- package/zh/guides/topic-detail/generator/codesmith/api/fs.md +54 -0
- package/zh/guides/topic-detail/generator/codesmith/api/git.md +48 -0
- package/zh/guides/topic-detail/generator/codesmith/api/handlebars.md +56 -0
- package/zh/guides/topic-detail/generator/codesmith/api/json.md +58 -0
- package/zh/guides/topic-detail/generator/codesmith/api/npm.md +45 -0
- package/zh/guides/topic-detail/generator/codesmith/develop.md +52 -0
- package/zh/guides/topic-detail/generator/codesmith/introduce.md +42 -1
- package/zh/guides/topic-detail/generator/codesmith/run-in-js.md +48 -0
- package/zh/guides/topic-detail/generator/codesmith/structure.md +86 -0
- package/zh/guides/topic-detail/generator/config/mwa.md +4 -8
- package/zh/guides/topic-detail/generator/plugin/api/file/addFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/addHelper.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/addPartial.md +2 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/introduce.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/rmDir.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/rmFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/file/updateJSONFile.md +3 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/updateModernConfig.md +2 -2
- package/zh/guides/topic-detail/generator/plugin/api/file/updateTextRawFile.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/hook/afterForged.md +3 -3
- package/zh/guides/topic-detail/generator/plugin/api/hook/onForged.md +3 -3
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputAfter.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/addInputBefore.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/input/type.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/createElement.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/createSubProject.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/new/enableFunc.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/api/npm/install.md +1 -1
- package/zh/guides/topic-detail/generator/plugin/develop.md +11 -7
- package/zh/guides/topic-detail/monorepo/sub-project-interface.md +0 -2
- package/zh/tutorials/first-app/c01-getting-started/1.1-prerequisites.md +2 -2
- package/zh/tutorials/first-app/c02-generator-and-studio/2.1-generator.md +0 -8
- package/zh/tutorials/first-app/c02-generator-and-studio/2.2-boilerplates.md +15 -7
- package/zh/tutorials/first-app/c07-app-entry/7.1-intro.md +1 -1
- package/zh/tutorials/first-app/c07-app-entry/7.2-add-entry-in-cli.md +1 -5
- package/zh/tutorials/first-app/c08-client-side-routing/8.2-file-based-routing.md +0 -8
- package/en/docusaurus-plugin-content-docs/current/apis/app/runtime/env.md +0 -72
- package/zh/apis/app/runtime/env.md +0 -70
- package/zh/components/deploy.md +0 -60
- package/zh/components/dev-ide.md +0 -1
- package/zh/components/entry-name.md +0 -15
- package/zh/components/env-prepare.md +0 -1
- package/zh/components/launch-bff-choices.md +0 -6
- package/zh/guides/advanced-features/bff/bff-server.md +0 -142
- package/zh/guides/advanced-features/typescript.md +0 -4
- package/zh/guides/concept/integrated.md +0 -4
- package/zh/guides/concept/solutions.md +0 -4
package/.turbo/turbo-build.log
CHANGED
@@ -39,6 +39,6 @@ Open the above HTML file in the browser, you can see the tile diagram of the pac
|
|
39
39
|
|
40
40
|
## Command Arguments
|
41
41
|
|
42
|
-
import CommandTip from '@site-docs/components/command-tip.md'
|
42
|
+
import CommandTip from '@site-docs-en/components/command-tip.md'
|
43
43
|
|
44
44
|
<CommandTip />
|
@@ -17,6 +17,6 @@ Run ESLint to check the syntax of the code. Normally, only the part of the code
|
|
17
17
|
|
18
18
|
* `--no-fix` close auto fix by lint.
|
19
19
|
|
20
|
-
import CommandTip from '@site-docs/components/command-tip.md'
|
20
|
+
import CommandTip from '@site-docs-en/components/command-tip.md'
|
21
21
|
|
22
22
|
<CommandTip />
|
@@ -19,7 +19,7 @@ The `modern new` command is used to enable features to an existing project.
|
|
19
19
|
|
20
20
|
For example, add application entry, enable some optional features such as Tailwind CSS, micro frontend, etc.
|
21
21
|
|
22
|
-
import CommandTip from '@site-docs/components/command-tip.md'
|
22
|
+
import CommandTip from '@site-docs-en/components/command-tip.md'
|
23
23
|
|
24
24
|
<CommandTip />
|
25
25
|
|
@@ -32,7 +32,6 @@ $ npx modern new
|
|
32
32
|
? 请选择你想要的操作 创建工程元素
|
33
33
|
? 创建工程元素 新建「应用入口」
|
34
34
|
? 请填写入口名称 entry
|
35
|
-
? 是否需要调整默认配置? 否
|
36
35
|
```
|
37
36
|
|
38
37
|
### Enable Features
|
@@ -31,6 +31,6 @@ Time: 0.994 s, estimated 1 s
|
|
31
31
|
files match `*.test.(js|ts)` in `api/` or `src/` will be recognized as test cases by default。
|
32
32
|
:::
|
33
33
|
|
34
|
-
import CommandTip from '@site-docs/components/command-tip.md'
|
34
|
+
import CommandTip from '@site-docs-en/components/command-tip.md'
|
35
35
|
|
36
36
|
<CommandTip />
|
@@ -0,0 +1,56 @@
|
|
1
|
+
:::tip 提示
|
2
|
+
The pnpm v6 and pnpm v7 versions do not use the same posture when executing commands. The following should be noted:
|
3
|
+
|
4
|
+
pnpm v7:
|
5
|
+
|
6
|
+
When using pnpm to invoke a command in `package.json`, if you need to pass arguments to pnpm, you need to put the arguments before the command.
|
7
|
+
|
8
|
+
For example, execute the prepare command with the pnpm '--filter' parameter:
|
9
|
+
|
10
|
+
```bash
|
11
|
+
pnpm run --filter "./packages/**" prepare
|
12
|
+
```
|
13
|
+
|
14
|
+
If you need to pass parameters to a command, you need to put the parameters after the command.
|
15
|
+
|
16
|
+
For example, in the following `package.json` configuration:
|
17
|
+
|
18
|
+
``` json
|
19
|
+
{
|
20
|
+
"scripts": {
|
21
|
+
"command": "modern command"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
```
|
25
|
+
|
26
|
+
The way to carry parameters when executing the command command is:
|
27
|
+
```bash
|
28
|
+
pnpm run command --options
|
29
|
+
```
|
30
|
+
|
31
|
+
pnpm v6:
|
32
|
+
|
33
|
+
In the following `package.json` configuration:
|
34
|
+
|
35
|
+
``` json
|
36
|
+
{
|
37
|
+
"scripts": {
|
38
|
+
"command": "modern command"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
```
|
42
|
+
|
43
|
+
If you need to execute `modern command --option`,
|
44
|
+
|
45
|
+
When using pnpm, you need to execute the `pnpm run command -- --option`。
|
46
|
+
|
47
|
+
This is because pnpm does not handle command parameters the same as Yarn, but is similar to npm: when not adding a `--` character string, the parameters of pnpm are passed; when using a `--` character string, the parameters of the execution script are passed.
|
48
|
+
|
49
|
+
In the above example the parameter `--option` is passed to `modern command`. If `pnpm run command --option` is executed, the parameter `--option` will be passed to pnpm.
|
50
|
+
|
51
|
+
Summary:
|
52
|
+
|
53
|
+
** When using pnpm v7, if you pass arguments to pnpm, you need to put the arguments before the command **
|
54
|
+
|
55
|
+
** When using pnpm v6, if the parameter passed to pnpm, you do not need to add `--`; if the parameter passed is for script use, you need to add `--` character string **.
|
56
|
+
:::
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
title: output.disableCssExtract
|
3
|
+
sidebar_label: disableCssExtract
|
4
|
+
---
|
5
|
+
|
6
|
+
:::info BUILDER
|
7
|
+
This configuration is Modern.js Builder configuration, there may be links that cannot be redirected. for details, please refer to [output.disableCssExtract](https://modernjs.dev/builder/zh/api/config-output.html#output-disablecssextract)。
|
8
|
+
:::
|
9
|
+
|
10
|
+
import Main from '@modern-js/builder-doc/en/config/output/disableCssExtract.md'
|
11
|
+
|
12
|
+
<Main />
|
package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/app.md
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
---
|
4
|
+
|
5
|
+
# @modern-js/codesmith-api-app
|
6
|
+
|
7
|
+
The combination encapsulation of APIs commonly used in the development of microgenerators, including APIs encapsulation of other packages such as fs, git, npm, etc. When the requirements can be met, it is recommended to use the API of the npm package.
|
8
|
+
|
9
|
+
## Use
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
import { AppAPI } from '@modern-js/codesmith-api-app';
|
13
|
+
|
14
|
+
export default async (context: GeneratorContext, generator: GeneratorCore) => {
|
15
|
+
const appApi = new AppAPI(context, generator);
|
16
|
+
await appApi.runInstall();
|
17
|
+
}
|
18
|
+
```
|
19
|
+
|
20
|
+
- Create AppAPI instance, the parameter is the generator of the microgenerator function parameter, please see the composition of the microgenerator project for details.
|
21
|
+
- Just call the API on its example.
|
22
|
+
|
23
|
+
## API
|
24
|
+
|
25
|
+
### checkEnvironment
|
26
|
+
|
27
|
+
Check the current generator operating environment, the check items are:
|
28
|
+
|
29
|
+
1. The node and node versions, the default is greater than 12.22.12, and the node version can be executed by passing parameters.
|
30
|
+
2. Yarn, pnpm or npm can be used.
|
31
|
+
|
32
|
+
Parameter:
|
33
|
+
|
34
|
+
- nodeVersion?: `string`. Node version want to check.
|
35
|
+
|
36
|
+
### runInstall
|
37
|
+
|
38
|
+
To install dependency, you can pass in the install dependency command, which defaults to the `packageManager` value in config.
|
39
|
+
|
40
|
+
Parameter:
|
41
|
+
|
42
|
+
- command?: `string`, Install dependency command.
|
43
|
+
|
44
|
+
### runGitAndInstall
|
45
|
+
|
46
|
+
This function performs the following actions:
|
47
|
+
|
48
|
+
1. Check whether the current generator execution directory is a git repository.
|
49
|
+
2. If not a git repository, initialization is a git repository.
|
50
|
+
3. Install dependencies.
|
51
|
+
4. Commit the initial commit in a non-monorepo project (judging the condition, `isMonorepoSubProject` does not exist or is false in the config), the commit information is feat: init, and customize is supported.
|
52
|
+
|
53
|
+
|
54
|
+
Parameter:
|
55
|
+
- commitMessage?: `string`, Initialization commit message
|
56
|
+
- installFunc?: `() => Promise<void>`. Install dependency function
|
57
|
+
|
58
|
+
### forgeTemplate
|
59
|
+
|
60
|
+
Render generator template file.
|
61
|
+
|
62
|
+
Parameter:
|
63
|
+
|
64
|
+
- templatePattern: `string`. Template files match regularities,for example: `templates/base-templates/**/*` .
|
65
|
+
- filter?: `(resourceKey: string) => boolean`. Filter function, the parameter is the file path matching the `templatePattern`, return true to render the file, return false to render the file.
|
66
|
+
- rename?: `(resourceKey: string) => string`. Rename function, the parameter is the file path matching `templatePattern`, and the new filename is returned. The templates directory at the beginning of `resourceKey` and the `.handlebars` suffix at the end will be replaced by default.
|
67
|
+
- parameters?: `Record<string, any>`. Render parameter, when there is a handlebars or ejs variable in the template, use it to pass the corresponding variable value.
|
68
|
+
- type?: `'handlebars' | 'ejs'`. Template file type, defaults to handlebars.
|
69
|
+
|
70
|
+
For example:
|
71
|
+
|
72
|
+
```typescript
|
73
|
+
await appApi.forgeTemplate(
|
74
|
+
'templates/base-templates/**/*',
|
75
|
+
undefined,
|
76
|
+
resourceKey =>
|
77
|
+
resourceKey
|
78
|
+
.replace('templates/base-templates/', '')
|
79
|
+
.replace('.handlebars', ''),
|
80
|
+
);
|
81
|
+
|
82
|
+
await appApi.forgeTemplate(
|
83
|
+
'templates/base-template/**/*',
|
84
|
+
resourceKey => !resourceKey.include('eslintrc.json'),
|
85
|
+
resourceKey =>
|
86
|
+
resourceKey
|
87
|
+
.replace('templates/base-template/', projectPath)
|
88
|
+
.replace('language', language as string)
|
89
|
+
.replace('.handlebars', ''),
|
90
|
+
{
|
91
|
+
name: packageName as string,
|
92
|
+
language,
|
93
|
+
isTs: language === Language.TS,
|
94
|
+
packageManager: getPackageManagerText(packageManager as any),
|
95
|
+
},
|
96
|
+
);
|
97
|
+
```
|
98
|
+
|
99
|
+
### showSuccessInfo
|
100
|
+
|
101
|
+
Display success information.
|
102
|
+
|
103
|
+
Parameter:
|
104
|
+
|
105
|
+
- successInfo?: `string`. Default is Success.
|
106
|
+
|
107
|
+
### runSubGenerator
|
108
|
+
|
109
|
+
Run the subgenerator.
|
110
|
+
|
111
|
+
Parameter:
|
112
|
+
|
113
|
+
- subGenerator: `string`. Subgenerator name or path.
|
114
|
+
- relativePwdPath?: `string`. The relative path to which the'string 'subgenerator runs.
|
115
|
+
- config?: `Record<string, unknown>`. Default config configuration for subgenerator runs.
|
116
|
+
|
117
|
+
For example:
|
118
|
+
|
119
|
+
```typescript
|
120
|
+
await appApi.runSubGenerator(
|
121
|
+
getGeneratorPath('@modern-js/repo-generator', context.config.distTag),
|
122
|
+
undefined,
|
123
|
+
{ ...context.config, hasPlugin: false },
|
124
|
+
);
|
125
|
+
```
|
126
|
+
|
127
|
+
### getInputBySchema
|
128
|
+
|
129
|
+
User interaction input is done through schema.
|
130
|
+
|
131
|
+
Parameter:
|
132
|
+
|
133
|
+
- schema: `FormilySchema | Question[]`. Question list, supports Formily schema and inquirer types.
|
134
|
+
- type: `'formily' | 'inquirer'`. Schema type, the default value is formily.
|
135
|
+
- configValue: `Record<string, unknown> = {}`. Schema default value, the problem corresponding to the schema field passed in this value will no longer interact with the user.
|
136
|
+
- validateMap?: `Record<string, (input: unknown, data?: Record<string, unknown>) => { success: boolean; error?: string }>`. Validation function for special fields in schema.
|
137
|
+
- initValue?: `Record<string, any>`. Schema the initialization value of the field.
|
138
|
+
|
139
|
+
For Formily Schema type support, please refer to [Customize input related type definition](/docs/guides/topic-detail/generator/plugin/api/input/type).
|
140
|
+
|
141
|
+
### getInputBySchemaFunc
|
142
|
+
|
143
|
+
By schema to complete user interaction input, schema parameter value as function, the user handles globalization problems, and only supports Formily schema.
|
144
|
+
|
145
|
+
Parameter:
|
146
|
+
|
147
|
+
- schema: `config?: Record<string, any>) => FormilySchema`. Get the problem list function, the config parameter is the config configuration information in the current generator.
|
148
|
+
- configValue: `Record<string, unknown> = {}`. Schema default value, the problem corresponding to the schema field passed in this value will no longer interact with the user.
|
149
|
+
- validateMap?: `Record<string, (input: unknown, data?: Record<string, unknown>) => { success: boolean; error?: string }>`. Validation function for special fields in schema.
|
150
|
+
- initValue?: `Record<string, any>`. Schema the initialization value of the field.
|
151
|
+
|
152
|
+
For Formily Schema type support, please refer to [Customize input related type definition](/docs/guides/topic-detail/generator/plugin/api/input/type).
|
package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/ejs.md
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 6
|
3
|
+
---
|
4
|
+
|
5
|
+
# @modern-js/codesmith-api-ejs
|
6
|
+
|
7
|
+
An API wrapper for file operations using [ejs] (https://ejs.co/) in microgenerators, providing a way to render individual template files and folders.
|
8
|
+
|
9
|
+
## Use
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
import { EjsAPI } from '@modern-js/codesmith-api-ejs';
|
13
|
+
|
14
|
+
export default async (context: GeneratorContext, generator: GeneratorCore) => {
|
15
|
+
const ejsAPI = new EjsAPI(generator);
|
16
|
+
await ejsAPI.renderTemplate(
|
17
|
+
material.get('templates/a.js'),
|
18
|
+
target: 'b.js',
|
19
|
+
{ data: "data" }
|
20
|
+
);
|
21
|
+
}
|
22
|
+
```
|
23
|
+
|
24
|
+
- Create EjsAPI instance, the parameter is the generator of the microgenerator function parameter, please see the composition of the microgenerator project for details.
|
25
|
+
- Just call the API on its example.
|
26
|
+
|
27
|
+
## API
|
28
|
+
|
29
|
+
### renderTemplate
|
30
|
+
|
31
|
+
Render a single template file.
|
32
|
+
|
33
|
+
Parameter:
|
34
|
+
|
35
|
+
- templateResource: `FsResource`. Template file resource, used by `context.materials.get(<filename>)`.
|
36
|
+
- target: `string`. Target file path name.
|
37
|
+
- parameters?: `Record<string, string>`. Render parameter.
|
38
|
+
|
39
|
+
### renderTemplateDir
|
40
|
+
|
41
|
+
Render template folder.
|
42
|
+
|
43
|
+
Parameter:
|
44
|
+
|
45
|
+
- material: `FsMaterial`. The material context of the current microgenerator execution.
|
46
|
+
- findGlob: `string`. Template file matches the regular.
|
47
|
+
- target: `(globMatch: string) => string`. The target file path generation function, the parameter is `resourceKey.`
|
48
|
+
- options?: `RenderTemplateDirOptions`. Glob Find the file configuration, the specific function viewable is here [glob] (https://www.npmjs.com/package/glob).
|
49
|
+
|
50
|
+
```typescript
|
51
|
+
type RenderTemplateDirOptions = {
|
52
|
+
nodir?: boolean;
|
53
|
+
dot?: boolean;
|
54
|
+
ignore?: string | readonly string[];
|
55
|
+
};
|
56
|
+
```
|
package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/fs.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 3
|
3
|
+
---
|
4
|
+
|
5
|
+
# @modern-js/codesmith-api-fs
|
6
|
+
|
7
|
+
API wrapper for file operations in microgenerators, providing methods to render individual template files and folders. FsAPI is usually used to handle binaries or template files that cannot be handled with handlebars, ejs.
|
8
|
+
|
9
|
+
## Use
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
import { FsAPI } from '@modern-js/codesmith-api-fs';
|
13
|
+
|
14
|
+
export default async (context: GeneratorContext, generator: GeneratorCore) => {
|
15
|
+
const handlebarApi = new HandlebarsAPI(generator);
|
16
|
+
await handlebarsAPI.renderFile(
|
17
|
+
material.get('templates/a.js'),
|
18
|
+
target: 'b.js'
|
19
|
+
);
|
20
|
+
}
|
21
|
+
```
|
22
|
+
|
23
|
+
- Create FsAPI instance, the parameter is the generator of the microgenerator function parameter, please see the composition of the microgenerator project for details.
|
24
|
+
- Just call the API on its example.
|
25
|
+
|
26
|
+
## API
|
27
|
+
|
28
|
+
### renderFile
|
29
|
+
|
30
|
+
Render a single template file.
|
31
|
+
|
32
|
+
Parameter:
|
33
|
+
|
34
|
+
- resource: `FsResource`. Template file resource, used by `context.materials.get(<filename>)`.
|
35
|
+
- target: `string`. Target file path name.
|
36
|
+
|
37
|
+
### renderDir
|
38
|
+
|
39
|
+
Render template folder.
|
40
|
+
|
41
|
+
Parameter:
|
42
|
+
|
43
|
+
- material: `FsMaterial`. The material context of the current microgenerator execution.
|
44
|
+
- findGlob: `string`. Template file matches the regular.
|
45
|
+
- target: `(globMatch: string) => string`. The target file path generation function, the parameter is `resourceKey.`
|
46
|
+
- options?: `RenderTemplateDirOptions`. Glob Find the file configuration, the specific function viewable is here [glob] (https://www.npmjs.com/package/glob).
|
47
|
+
|
48
|
+
```typescript
|
49
|
+
type RenderTemplateDirOptions = {
|
50
|
+
nodir?: boolean;
|
51
|
+
dot?: boolean;
|
52
|
+
ignore?: string | readonly string[];
|
53
|
+
};
|
54
|
+
```
|
package/en/docusaurus-plugin-content-docs/current/guides/topic-detail/generator/codesmith/api/git.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 4
|
3
|
+
---
|
4
|
+
|
5
|
+
# @modern-js/codesmith-api-git
|
6
|
+
|
7
|
+
The API encapsulation of git-related operations in the micro-generator provides methods for judging git repository, initialization and commit code.
|
8
|
+
|
9
|
+
## Use
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
import { GitAPI } from '@modern-js/codesmith-api-git';
|
13
|
+
|
14
|
+
export default async (context: GeneratorContext, generator: GeneratorCore) => {
|
15
|
+
const gitApi = new GitAPI(generatorCore, generatorContext);
|
16
|
+
await gitApi.initGitRepo();
|
17
|
+
}
|
18
|
+
```
|
19
|
+
|
20
|
+
- Create GitAPI instance, the parameter is the generator of the microgenerator function parameter, please see the composition of the microgenerator project for details.
|
21
|
+
|
22
|
+
- Just call the API on its example.
|
23
|
+
|
24
|
+
## API
|
25
|
+
|
26
|
+
### isInGitRepo
|
27
|
+
|
28
|
+
Whether the current directory is a git repository.
|
29
|
+
|
30
|
+
Parameter:
|
31
|
+
|
32
|
+
- cwd?: `string`. The execution directory of the git command, the default is microgenerator `outputPath`.
|
33
|
+
|
34
|
+
### initGitRepo
|
35
|
+
|
36
|
+
The initialization is the git repository. The default branch name for init can be configured via `defaultBranch` in the generator config.
|
37
|
+
|
38
|
+
Parameter:
|
39
|
+
|
40
|
+
- cwd?: `string`. The execution directory of the git command, the default is microgenerator `outputPath`.
|
41
|
+
- force?: `boolean`. Use this parameter to force git init when the current directory is already a git repository.
|
42
|
+
|
43
|
+
### addAndCommit
|
44
|
+
|
45
|
+
Execute `git add .` and `git commit` commit the current changes.
|
46
|
+
|
47
|
+
Parameter:
|
48
|
+
- commitMessage: `string`. Commit information.
|
49
|
+
- cwd?: `string`. The execution directory of the git command, the default is microgenerator `outputPath`.
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 5
|
3
|
+
---
|
4
|
+
|
5
|
+
# @modern-js/codesmith-api-handlebars
|
6
|
+
|
7
|
+
An API wrapper for file operations using [handlebars] (https://handlebarsjs.com/) in the microgenerator, providing a way to render individual template files and folders.
|
8
|
+
|
9
|
+
## Use
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
import { HandlebarsAPI } from '@modern-js/codesmith-api-handlebars';
|
13
|
+
|
14
|
+
export default async (context: GeneratorContext, generator: GeneratorCore) => {
|
15
|
+
const handlebarApi = new HandlebarsAPI(generator);
|
16
|
+
await handlebarsAPI.renderTemplate(
|
17
|
+
material.get('templates/a.js'),
|
18
|
+
target: 'b.js',
|
19
|
+
{ data: "data" }
|
20
|
+
);
|
21
|
+
}
|
22
|
+
```
|
23
|
+
|
24
|
+
- Create HandlebarsAPI instance, the parameter is the generator of the microgenerator function parameter, please see the composition of the microgenerator project for details.
|
25
|
+
|
26
|
+
- Just call the API on its example.
|
27
|
+
|
28
|
+
|
29
|
+
## API
|
30
|
+
|
31
|
+
### renderTemplate
|
32
|
+
|
33
|
+
Render a single template file.
|
34
|
+
|
35
|
+
Parameter:
|
36
|
+
|
37
|
+
- templateResource: `FsResource`. Template file resource, used by `context.materials.get(<filename>)`.
|
38
|
+
- target: `string`. Target file path name.
|
39
|
+
- parameters?: `Record<string, string>`. Render parameter.
|
40
|
+
|
41
|
+
### renderTemplateDir
|
42
|
+
|
43
|
+
Render template folder.
|
44
|
+
|
45
|
+
Parameter:
|
46
|
+
|
47
|
+
- material: `FsMaterial`. The material context of the current microgenerator execution.
|
48
|
+
- findGlob: `string`. Template file matches the regular.
|
49
|
+
- target: `(globMatch: string) => string`. The target file path generation function, the parameter is `resourceKey.`
|
50
|
+
- options?: `RenderTemplateDirOptions`. Glob Find the file configuration, the specific function viewable is here [glob] (https://www.npmjs.com/package/glob).
|
51
|
+
|
52
|
+
```typescript
|
53
|
+
type RenderTemplateDirOptions = {
|
54
|
+
nodir?: boolean;
|
55
|
+
dot?: boolean;
|
56
|
+
ignore?: string | readonly string[];
|
57
|
+
};
|
58
|
+
```
|