@modern-js/main-doc 2.22.0 → 2.22.1

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/docs/en/components/debug-app.mdx +1 -1
  3. package/docs/en/components/deploy.mdx +1 -0
  4. package/docs/en/components/entry-mode.mdx +0 -0
  5. package/docs/en/components/init-app.mdx +3 -7
  6. package/docs/en/components/release-note.mdx +1 -0
  7. package/docs/en/configure/app/output/css-modules.mdx +13 -0
  8. package/docs/en/configure/app/tools/swc.mdx +2 -16
  9. package/docs/en/guides/advanced-features/rspack-start.mdx +1 -2
  10. package/docs/en/guides/concept/builder.mdx +15 -15
  11. package/docs/en/guides/concept/entries.mdx +47 -46
  12. package/docs/en/guides/get-started/glossary.mdx +12 -12
  13. package/docs/en/guides/get-started/introduction.mdx +17 -20
  14. package/docs/en/guides/get-started/quick-start.mdx +21 -37
  15. package/docs/en/guides/get-started/upgrade.mdx +15 -13
  16. package/docs/en/guides/topic-detail/changesets/_category_.json +4 -0
  17. package/docs/en/guides/topic-detail/changesets/add.mdx +125 -0
  18. package/docs/en/guides/topic-detail/changesets/changelog.mdx +238 -0
  19. package/docs/en/guides/topic-detail/changesets/commit.mdx +269 -0
  20. package/docs/en/guides/topic-detail/changesets/config.mdx +147 -0
  21. package/docs/en/guides/topic-detail/changesets/github.mdx +175 -0
  22. package/docs/en/guides/topic-detail/changesets/introduce.mdx +56 -0
  23. package/docs/en/guides/topic-detail/changesets/release-note.mdx +273 -0
  24. package/docs/en/guides/topic-detail/changesets/release-pre.mdx +49 -0
  25. package/docs/en/guides/topic-detail/changesets/release.mdx +229 -0
  26. package/docs/en/guides/troubleshooting/builder.mdx +8 -0
  27. package/docs/zh/community/blog/v2-release-note.mdx +1 -1
  28. package/docs/zh/community/contributing-guide.mdx +1 -1
  29. package/docs/zh/components/entry-mode.mdx +0 -0
  30. package/docs/zh/components/init-app.mdx +5 -9
  31. package/docs/zh/configure/app/output/css-modules.mdx +13 -0
  32. package/docs/zh/configure/app/tools/swc.mdx +2 -16
  33. package/docs/zh/guides/advanced-features/rspack-start.mdx +1 -2
  34. package/docs/zh/guides/concept/builder.mdx +1 -1
  35. package/docs/zh/guides/concept/entries.mdx +18 -14
  36. package/docs/zh/guides/get-started/quick-start.mdx +7 -10
  37. package/docs/zh/guides/get-started/upgrade.mdx +1 -1
  38. package/docs/zh/guides/topic-detail/changesets/add.mdx +15 -13
  39. package/docs/zh/guides/topic-detail/changesets/changelog.mdx +20 -20
  40. package/docs/zh/guides/topic-detail/changesets/commit.mdx +12 -14
  41. package/docs/zh/guides/topic-detail/changesets/config.mdx +5 -5
  42. package/docs/zh/guides/topic-detail/changesets/github.mdx +38 -27
  43. package/docs/zh/guides/topic-detail/changesets/introduce.mdx +12 -12
  44. package/docs/zh/guides/topic-detail/changesets/release-note.mdx +84 -70
  45. package/docs/zh/guides/topic-detail/changesets/release-pre.mdx +9 -9
  46. package/docs/zh/guides/topic-detail/changesets/release.mdx +29 -29
  47. package/docs/zh/guides/troubleshooting/builder.mdx +8 -0
  48. package/package.json +5 -5
@@ -30,7 +30,7 @@ Modern.js 初始化的项目是单入口的(SPA),项目结构如下:
30
30
  └── tsconfig.json
31
31
  ```
32
32
 
33
- 在 Modern.js 项目中,你可以很方便的将单入口切换成多入口,直接在项目下执行 `pnpm run new`,通过生成器创建入口即可:
33
+ 在 Modern.js 项目中,你可以很方便的将单入口切换成多入口,直接在项目下执行 `pnpm run new`,根据提示创建入口即可:
34
34
 
35
35
  ```bash
36
36
  ? 请选择你想要的操作 创建工程元素
@@ -54,34 +54,38 @@ Modern.js 初始化的项目是单入口的(SPA),项目结构如下:
54
54
  └── page.tsx
55
55
  ```
56
56
 
57
- 原本的代码被移动到了和 `package.json` 中 `name` 同名的目录下,并创建了新的目录。
57
+ 原本的入口代码被移动到了和 `package.json` 中 `name` 同名的目录下,并创建了 `new-entry` 入口目录。
58
58
 
59
59
  执行 `pnpm run dev` 后,可以看到新增了一条名为 `/new-entry` 的路由,并且被迁移的代码路由并未发生变化。
60
60
 
61
61
  :::tip
62
- Modern.js 会将与 package.json 文件中 `name` 字段同名的入口作为主入口,主入口的路由为 `/`,其他入口的路由为 `/{entryName}`。
62
+ Modern.js 会将与 `package.json` 文件中 `name` 字段同名的入口作为主入口,主入口的路由为 `/`,其他入口的路由为 `/{entryName}`。
63
63
 
64
- 比如,package.json 中的 `name` 为 `myapp` 时,`src/myapp` 会作为项目的主入口。
64
+ 比如,`package.json` 中的 `name` 为 `myapp` 时,`src/myapp` 会作为项目的主入口。
65
65
 
66
66
  :::
67
67
 
68
68
  ## 入口类型
69
69
 
70
- 不同的入口类型具有不同的编译和运行时行为。在 Modern.js 创建项目时,开发者可以手动选择创建**框架模式**或是**构建模式**的项目。完成创建后,可以看到不同模式的项目样板文件是不同的。
70
+ 不同的入口类型具有不同的编译和运行时行为。
71
+
72
+ import EntryMode from '@site-docs/components/entry-mode.mdx';
73
+
74
+ <EntryMode />
71
75
 
72
76
  默认情况下,Modern.js 启动项目前会对 `src/` 下的文件进行扫描,识别入口,并生成对应的服务端路由。
73
77
 
74
78
  :::tip
75
- 可以通过 [source.entriesDir](/configure/app/source/entries-dir) 更改入口目录为其他目录。
79
+ 可以通过 [source.entriesDir](/configure/app/source/entries-dir) 修改页面的入口识别目录。
76
80
 
77
81
  :::
78
82
 
79
83
  并非 `src/` 下所有的一级目录都会成为项目入口, 入口所在目录必须满足以下四个条件之一:
80
84
 
81
- 1. 具有 `routes/` 目录
82
- 2. 具有 `App.[jt]sx?` 文件
83
- 3. 具有 `index.[jt]sx?` 文件
84
- 4. 具有 `pages/` 目录(兼容 Modern.js 1.0
85
+ 1. 具有 `routes/` 目录。
86
+ 2. 具有 `App.[jt]sx?` 文件。
87
+ 3. 具有 `index.[jt]sx?` 文件。
88
+ 4. 具有 `pages/` 目录(兼容 Modern.js 1.0)。
85
89
 
86
90
  当 `src/` 目录满足入口特征时,Modern.js 会认为当前项目为单入口应用。
87
91
 
@@ -94,7 +98,7 @@ Modern.js 会将与 package.json 文件中 `name` 字段同名的入口作为主
94
98
 
95
99
  ### 框架模式入口
96
100
 
97
- 框架模式指需要使用 Modern.js 框架能力,例如 Router、SSR、一体化调用等。这类入口约定下,开发者定义的入口并不是真正的 Webpack 编译入口。Modern.js 在启动时会生成一个封装过的入口,可以在 `node_modules/.modern/{entryName}/index.js` 找到真正的入口。
101
+ 框架模式指需要使用 Modern.js 框架能力,例如 Router、SSR、一体化调用等。这类入口约定下,开发者定义的入口并不是真正的 webpack 编译入口。Modern.js 在启动时会生成一个封装过的入口,可以在 `node_modules/.modern/{entryName}/index.js` 找到真正的入口。
98
102
 
99
103
  #### 约定式路由
100
104
 
@@ -135,7 +139,7 @@ export default () => {
135
139
 
136
140
  #### 自定义 Bootstrap
137
141
 
138
- 如果入口中存在 `index.[jt]sx` 文件,并且当文件默认导出函数时,Modern.js 会将默认的 bootstrap 函数作为入参传入,并用导出的函数替代默认的 bootstrap,这样开发者可以自定义将组件挂载到 DOM 节点上,或在挂载前添加自定义行为。例如:
142
+ 如果入口中存在 `index.[jt]sx` 文件,并且当文件默认导出函数时,Modern.js 会将默认的 `bootstrap` 函数作为入参传入,并用导出的函数替代默认的 `bootstrap`,这样开发者可以自定义将组件挂载到 DOM 节点上,或在挂载前添加自定义行为。例如:
139
143
 
140
144
  ```tsx
141
145
  export default (App: React.ComponentType, bootstrap: () => void) => {
@@ -178,9 +182,9 @@ export default AppWrapper;
178
182
 
179
183
  ### 构建模式入口
180
184
 
181
- 构建模式是指不使用任何 Modern.js 运行时的能力,完全由开发者自己定义项目 Webpack 的入口。
185
+ 构建模式是指不使用任何 Modern.js 运行时的能力,完全由开发者自己定义项目 webpack 的入口。
182
186
 
183
- 如果入口中存在 `index.[jt]sx` ,并且没有默认导出函数时,这时候该文件就是真正的 Webpack 入口文件。这里和 [Create React App](https://github.com/facebook/create-react-app) 类似,需要自己将组件挂载到 DOM 节点、添加热更新代码等。例如:
187
+ 如果入口中存在 `index.[jt]sx` ,并且没有默认导出函数时,这时候该文件就是真正的 webpack 入口文件。这里和 [Create React App](https://github.com/facebook/create-react-app) 类似,需要自己将组件挂载到 DOM 节点、添加热更新代码等。例如:
184
188
 
185
189
  ```js title=src/index.jsx
186
190
  import React from 'react';
@@ -12,9 +12,9 @@ import Prerequisites from "@site-docs/components/prerequisites"
12
12
 
13
13
  ## 安装
14
14
 
15
- Modern.js 提供了 `@modern-js/create` 生成器来创建项目,不要全局安装,使用 `npx` 按需运行。
15
+ Modern.js 提供了 `@modern-js/create` 工具来创建项目,不要全局安装,使用 `npx` 按需运行。
16
16
 
17
- 可以使用已有的空目录来创建项目:
17
+ 可以在已有的空目录来创建项目:
18
18
 
19
19
  ```bash
20
20
  mkdir myapp && cd myapp
@@ -41,9 +41,9 @@ import DebugApp from "@site-docs/components/debug-app"
41
41
 
42
42
  ## 使用配置
43
43
 
44
- 通过生成器创建的 Modern.js 项目中,存在 `modern.config.ts` 文件。
44
+ 通过 `@modern-js/create` 创建的 Modern.js 项目中,会默认生成 `modern.config.ts` 文件。
45
45
 
46
- 可以通过配置文件来开启功能,或覆盖 Modern.js 的默认行为。例如添加如下配置,开启 SSR:
46
+ 可以通过该配置文件修改配置,覆盖 Modern.js 的默认行为。例如添加如下配置,开启 SSR:
47
47
 
48
48
  ```ts title="modern.config.ts"
49
49
  import appTools, { defineConfig } from '@modern-js/app-tools';
@@ -51,7 +51,6 @@ import appTools, { defineConfig } from '@modern-js/app-tools';
51
51
  export default defineConfig({
52
52
  runtime: {
53
53
  router: true,
54
- state: true,
55
54
  },
56
55
  server: {
57
56
  ssr: true,
@@ -93,14 +92,12 @@ info File sizes after production build:
93
92
  构建产物默认生成到 `dist/`,目录结构如下:
94
93
 
95
94
  ```
96
- .
97
- ├── asset-manifest.json
95
+ dist
98
96
  ├── html
99
- └── main
100
- ├── loader-routes
101
- │ └── main
97
+    └── main
102
98
  ├── modern.config.json
103
99
  ├── route.json
100
+ ├── routes-manifest.json
104
101
  └── static
105
102
  ├── css
106
103
  └── js
@@ -16,7 +16,7 @@ $ pnpm run upgrade
16
16
 
17
17
  > modern upgrade
18
18
 
19
- [INFO] [项目类型]: 应用
19
+ [INFO] [项目类型]: Web 应用
20
20
  [INFO] [Modern.js 最新版本]: 2.0.0
21
21
  [INFO] 已更新 Modern.js 依赖至最新版本!
22
22
  ```
@@ -2,9 +2,9 @@
2
2
  sidebar_position: 2
3
3
  ---
4
4
 
5
- # 添加一个 changeset
5
+ # 添加 Changesets
6
6
 
7
- 当我们开发完成一个功能时,需要添加一个 changeset 用于声明当前功能,用于后续版本发布。
7
+ 当我们开发完成时,需要添加一个 changeset 声明当前变更,用于后续版本发布。
8
8
 
9
9
  ## 信息
10
10
 
@@ -14,7 +14,7 @@ sidebar_position: 2
14
14
 
15
15
  - 本次变更需要升级的版本号类型,类型符合 [semver](https://semver.org/) 规范。
16
16
 
17
- - 本次变更的 Changelog 信息。
17
+ - 本次变更的 changelog 信息。
18
18
 
19
19
  ## 步骤
20
20
 
@@ -25,17 +25,17 @@ sidebar_position: 2
25
25
 
26
26
  ### 模块工程方案
27
27
 
28
- #### 在根目录执行以下命令:
28
+ #### 在根目录执行 change 命令
29
29
 
30
30
  ```bash
31
31
  pnpm run change
32
32
  ```
33
33
 
34
- #### 选择本次变更需要升级的版本号类型,点击回车:
34
+ #### 选择本次变更需要升级的版本号类型
35
35
 
36
36
  ![选择版本类型](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-select-version.png)
37
37
 
38
- #### 填入 Changelog 信息,并点击两次回车:
38
+ #### 填入 changelog 信息,并点击两次回车:
39
39
 
40
40
  ![写入变更信息](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-input-changelog.png)
41
41
 
@@ -55,13 +55,13 @@ feat: test module solution changeset
55
55
 
56
56
  我们假设 monorepo 中存在三个模块包,分别为 `module-1`,`module-2`,`module-3`。
57
57
 
58
- #### 在根目录执行以下命令:
58
+ #### 在根目录执行 change 命令
59
59
 
60
60
  ```bash
61
61
  pnpm run change
62
62
  ```
63
63
 
64
- #### 选择本次需要升级的包列表:
64
+ #### 选择本次需要升级的包列表
65
65
 
66
66
  Changesets 会根据当前代码变更(`git diff Head...baseBranch`),将 Monorepo 中的 package 分为两类,`changed packages` 和 `unchanged packages`,方便用户进行选择。
67
67
 
@@ -69,11 +69,13 @@ Changesets 会根据当前代码变更(`git diff Head...baseBranch`),将 Monor
69
69
 
70
70
  ![选择升级包](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-select-packages.png)
71
71
 
72
- #### 分别选择不同版本类型对应的包,changeset 会询问 `major` 和 `minor` 类型,如果存在包未选择这两种类型,将会默认使用 `patch` 类型:
72
+ #### 分别选择不同版本类型对应的包
73
+
74
+ changeset 会询问 `major` 和 `minor` 类型,如果存在包未选择这两种类型,将会默认使用 `patch` 类型。
73
75
 
74
76
  ![选择升级包版本类型](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-auto-select-patch.png)
75
77
 
76
- #### 填入 Changelog 信息,并点击两次回车:
78
+ #### 填入 changelog 信息
77
79
 
78
80
  ![写入变更信息](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-input-changelog-monorepo.png)
79
81
 
@@ -94,10 +96,10 @@ feat: test-changeset
94
96
 
95
97
  change 命令支持以下参数:
96
98
 
97
- - `--empty` 添加一个空的 changeset。
99
+ - `--empty`: 添加一个空的 changeset。
98
100
 
99
101
  ```bash
100
- pnpm run change -- --empty
102
+ pnpm run change --empty
101
103
  ```
102
104
 
103
105
  执行完成后,将在项目的 `.changeset` 目录创建空的 changeset 文件,文件内容如下:
@@ -107,7 +109,7 @@ pnpm run change -- --empty
107
109
  ---
108
110
  ```
109
111
 
110
- - `--open` 使用该参数时,在填写 Changelog 步骤会打开系统默认编辑器进行填写。
112
+ - `--open`: 使用该参数时,在填写 changelog 步骤会打开系统默认编辑器进行填写。
111
113
 
112
114
  ## 注意事项
113
115
 
@@ -2,15 +2,15 @@
2
2
  sidebar_position: 6
3
3
  ---
4
4
 
5
- # 自定义 Changelog 生成
5
+ # 自定义 changelog 生成
6
6
 
7
- Changesets 默认会使用 `@changesets/cli/changelog` 生成 Changelog 信息,如果默认的 Changelog 信息不能满足需求,可以自定义 Changelog 的生成。
7
+ Changesets 默认会使用 `@changesets/cli/changelog` 生成 Changelog 信息,如果默认的 changelog 信息不能满足需求,可以自定义 changelog 的生成。
8
8
 
9
- ## 自定义 Changlog 内容
9
+ ## 自定义 changelog 内容
10
10
 
11
- Changelog 信息主要包含以下两种信息:
11
+ changelog 信息主要包含以下两种信息:
12
12
 
13
- - changeset 中写入的 Changelog 信息。
13
+ - changeset 中写入的 changelog 信息。
14
14
 
15
15
  - 本次版本升级关联包的版本变更信息。
16
16
 
@@ -41,7 +41,7 @@ export type Changeset = {
41
41
 
42
42
  #### 返回值
43
43
 
44
- Changelog 内容。
44
+ changelog 内容。
45
45
 
46
46
  #### 默认实现
47
47
 
@@ -91,7 +91,7 @@ type DependenciesUpdated = ModCompWithPackage[];
91
91
 
92
92
  #### 返回值
93
93
 
94
- Changelog 内容。
94
+ changelog 内容。
95
95
 
96
96
  #### 默认实现
97
97
 
@@ -128,11 +128,11 @@ async function getDependencyReleaseLine(changesets, dependenciesUpdated) {
128
128
 
129
129
  ## 配置
130
130
 
131
- Changesets 配置文件中 `changelog` 字段,该字段用于标记 Changelog 信息的获取途径。
131
+ Changesets 配置文件中 `changelog` 字段用于标记 changelog 信息的获取途径。
132
132
 
133
- 该配置可以为字符串,直接声明获取 Changelog 信息模块的模块名称或者路径。
133
+ 该配置可以为字符串,直接声明获取 changelog 信息模块的模块名称或者路径。
134
134
 
135
- 该配置还支持配置数组,数组中第一个元素为获取 Changelog 信息模块的模块名称或者路径,第二个元素为传入对应函数的参数值,会作为 `getReleaseLine` 和 `getDependencyReleaseLine` 函数的第三个参数传入。
135
+ 该配置还支持配置数组,数组中第一个元素为获取 changelog 信息模块的模块名称或者路径,第二个元素为传入对应函数的参数值,会作为 `getReleaseLine` 和 `getDependencyReleaseLine` 函数的第三个参数传入。
136
136
 
137
137
  ### 配置相对路径
138
138
 
@@ -162,9 +162,9 @@ module.exports = {
162
162
 
163
163
  ### 使用模块工程方案
164
164
 
165
- 自定义 Changelog 还可以使用模块工程方案进行管理,提供通用方案。
165
+ 自定义 changelog 还可以使用模块工程方案进行管理,提供通用方案。
166
166
 
167
- #### 使用 `npx @modern-js/create@latest` 创建模块工程方案。
167
+ #### 使用 `npx @modern-js/create@latest` 创建模块工程方案
168
168
 
169
169
  ```md
170
170
  ? 请选择你想创建的工程类型:Npm 模块
@@ -173,7 +173,7 @@ module.exports = {
173
173
  ? 请选择包管理工具:pnpm
174
174
  ```
175
175
 
176
- #### 实现自定义内容。
176
+ #### 实现自定义内容
177
177
 
178
178
  ```ts title="src/index.ts"
179
179
  export async function getReleaseLine() {}
@@ -181,11 +181,11 @@ export async function getReleaseLine() {}
181
181
  export async function getDependencyReleaseLine() {}
182
182
  ```
183
183
 
184
- #### 将模块发布到 NPM
184
+ #### 将模块发布到 NPM
185
185
 
186
- #### 在目标仓库根目录安装对应模块,例如 `custom-changelog`。
186
+ #### 在目标仓库根目录安装对应模块,例如 `custom-changelog`
187
187
 
188
- #### 配置 changeset 的 changelog 配置为包名称。
188
+ #### 配置 changeset 的 changelog 配置为包名称
189
189
 
190
190
  ```json title=".changesets/config.json"
191
191
  {
@@ -198,7 +198,7 @@ export async function getDependencyReleaseLine() {}
198
198
 
199
199
  如果你当前仓库为 Monorepo 工程方案,可以直接使用模块子项目进行管理。
200
200
 
201
- #### 执行 `pnpm run new` 创建模块子项目。
201
+ #### 执行 `pnpm run new` 创建模块子项目
202
202
 
203
203
  ```md
204
204
  ? 请选择你想创建的工程类型:Npm 模块
@@ -207,7 +207,7 @@ export async function getDependencyReleaseLine() {}
207
207
  ? 请选择开发语言:TS
208
208
  ```
209
209
 
210
- #### 实现自定义内容。
210
+ #### 实现自定义内容
211
211
 
212
212
  ```ts title="src/index.ts"
213
213
  export async function getReleaseLine() {}
@@ -215,7 +215,7 @@ export async function getReleaseLine() {}
215
215
  export async function getDependencyReleaseLine() {}
216
216
  ```
217
217
 
218
- #### 在 Monorepo 根目录添加子项目模块依赖,例如 `custom-changelog`。
218
+ #### 在 Monorepo 根目录添加子项目模块依赖,例如 `custom-changelog`
219
219
 
220
220
  ```json title="package.json"
221
221
  {
@@ -226,7 +226,7 @@ export async function getDependencyReleaseLine() {}
226
226
  }
227
227
  ```
228
228
 
229
- #### 配置 changeset 的 changelog 配置为包名称。
229
+ #### 配置 changeset 的 changelog 配置为包名称
230
230
 
231
231
  ```json title=".changesets/config.json"
232
232
  {
@@ -118,7 +118,7 @@ type ReleasePlan = {
118
118
 
119
119
  - options
120
120
 
121
- 配置 commit 时的配置信息。
121
+ 配置 commit 时的其他参数。
122
122
 
123
123
  > commit 配置为数组时,第二个参数支持传入默认的配置信息,会对应的使用该参数传递。
124
124
 
@@ -169,7 +169,7 @@ Changesets 配置文件中 `commit` 字段,该字段用于标记是否需要
169
169
 
170
170
  commit 配置如果为相对路径为 `.changesets` 目录下的相对路径。
171
171
 
172
- 例如创建 .changeset/my-commit-config.js 文件,定义如下内容:
172
+ 例如创建 `.changeset/my-commit-config.js` 文件,定义如下内容:
173
173
 
174
174
  ```js title=".changeset/my-commit-config.js"
175
175
  async function getAddMessage(changeset, options) {}
@@ -195,9 +195,7 @@ commit 配置为 ./my-commit-config.js 即可:
195
195
 
196
196
  自定义 commit 还可以使用模块工程方案进行管理,提供通用方案。
197
197
 
198
- 自定义 Changelog 还可以使用模块工程方案进行管理,提供通用方案。
199
-
200
- #### 使用 `npx @modern-js/create@latest` 创建模块工程方案。
198
+ #### 使用 `npx @modern-js/create@latest` 创建模块工程方案
201
199
 
202
200
  ```md
203
201
  ? 请选择你想创建的工程类型:Npm 模块
@@ -206,7 +204,7 @@ commit 配置为 ./my-commit-config.js 即可:
206
204
  ? 请选择包管理工具:pnpm
207
205
  ```
208
206
 
209
- #### 实现自定义内容。
207
+ #### 实现自定义内容
210
208
 
211
209
  ```ts title="src/index.ts"
212
210
  export async function getAddMessage() {}
@@ -214,15 +212,15 @@ export async function getAddMessage() {}
214
212
  export async function getVersionMessage() {}
215
213
  ```
216
214
 
217
- #### 将模块发布到 NPM
215
+ #### 将模块发布到 NPM
218
216
 
219
- #### 在目标仓库根目录安装对应模块,例如 custom-commit
217
+ #### 在目标仓库根目录安装对应模块,例如 `custom-commit`
220
218
 
221
- #### 配置 changeset 的 commit 配置为包名称。
219
+ #### 配置 changeset 的 commit 配置为包名称
222
220
 
223
221
  ```json title="package.json"
224
222
  {
225
- "changelog": "custom-commit",
223
+ "commit": "custom-commit",
226
224
  ...
227
225
  }
228
226
  ```
@@ -231,7 +229,7 @@ export async function getVersionMessage() {}
231
229
 
232
230
  如果你当前仓库为 Monorepo 工程方案,可以直接使用模块子项目进行管理。
233
231
 
234
- #### 执行 `pnpm run new` 创建模块子项目。
232
+ #### 执行 `pnpm run new` 创建模块子项目
235
233
 
236
234
  ```md
237
235
  ? 请选择你想创建的工程类型:Npm 模块
@@ -240,7 +238,7 @@ export async function getVersionMessage() {}
240
238
  ? 请选择开发语言:TS
241
239
  ```
242
240
 
243
- #### 实现自定义内容。
241
+ #### 实现自定义内容
244
242
 
245
243
  ```ts title="src/index.ts"
246
244
  export async function getAddMessage() {}
@@ -248,7 +246,7 @@ export async function getAddMessage() {}
248
246
  export async function getVersionMessage() {}
249
247
  ```
250
248
 
251
- #### 在 Monorepo 根目录添加子项目模块依赖,例如 custom-commit
249
+ #### 在 Monorepo 根目录添加子项目模块依赖,例如 `custom-commit`
252
250
 
253
251
  ```json title="package.json"
254
252
  {
@@ -259,7 +257,7 @@ export async function getVersionMessage() {}
259
257
  }
260
258
  ```
261
259
 
262
- #### 配置 changeset 的 commit 配置为包名称。
260
+ #### 配置 changeset 的 commit 配置为包名称
263
261
 
264
262
  ```json title=".changesets/config.json"
265
263
  {
@@ -4,7 +4,7 @@ sidebar_position: 5
4
4
 
5
5
  # Changesets 配置文件
6
6
 
7
- 我们前面了解到,初始化 Modern.js 仓库时,会默认初始化 Changesets 的配置文件,即 `.changeset/config.json` 文件,下面我们将详细了解一下该文件中支持哪些配置。
7
+ 我们前面了解到,初始化 Modern.js 仓库时,会默认初始化 changesets 的配置文件,即 `.changeset/config.json` 文件,下面我们将详细了解一下该文件中支持哪些配置。
8
8
 
9
9
  ## 配置介绍
10
10
 
@@ -106,15 +106,15 @@ pkg-b @ version 1.0.0
106
106
 
107
107
  默认值:`@changesets/cli/changelog`
108
108
 
109
- 生成 Changelog 规则。
109
+ 生成 changelog 规则。
110
110
 
111
- 配置为 `false` 时,执行 bump 命令时,在 `CHANGELOG.md` 文件中只声明版本号,不声明其他 Changelog 信息。
111
+ 配置为 `false` 时,执行 bump 命令时,在 `CHANGELOG.md` 文件中只声明版本号,不声明其他 changelog 信息。
112
112
 
113
113
  ![关闭 changelog 配置](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/changeset-empty-changelog.png)
114
114
 
115
- 配置为 `@changesets/cli/changelog` 将使用官方提供的 Changlog 生成规则,将 changeset 信息转换为 Changlog 内容。
115
+ 配置为 `@changesets/cli/changelog` 将使用官方提供的 changlog 生成规则,将 changeset 信息转换为 changlog 内容。
116
116
 
117
- 配置为数组时,第一个参数为自定义 NPM 包或者路径,第二个参数为需要传入的默认参数配置,自定义格式我们将在后续[自定义 Changelog](/guides/topic-detail/changesets/changelog) 章节讲解。
117
+ 配置为数组时,第一个参数为自定义 NPM 包或者路径,第二个参数为需要传入的默认参数配置,自定义格式我们将在后续[自定义 changelog](/guides/topic-detail/changesets/changelog) 章节讲解。
118
118
 
119
119
  ### \_\_\_experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH
120
120
 
@@ -6,7 +6,7 @@ sidebar_position: 9
6
6
 
7
7
  ## BOT
8
8
 
9
- 在 Github 上,Changesets 提供了机器人用于检测当前 Pull Request 是否存在 changeset,并提供了 UI 界面添加和修改 changeset。
9
+ 在 Github 上,changesets 提供了机器人用于检测当前 Pull Request 是否存在 changeset,并提供了 UI 界面添加和修改 changeset。
10
10
 
11
11
  ### 安装
12
12
 
@@ -46,9 +46,9 @@ sidebar_position: 9
46
46
 
47
47
  Modern.js 提供了自动创建发版 Pull Request 的 Github Action,提供基于选择的分支自动执行 bump 操作,更新 lock 文件及创建 Pull Request 操作。
48
48
 
49
- ### 使用
49
+ #### 使用
50
50
 
51
- 在仓库中创建 `.github/workflows/release-pull-request.yml` 文件,填入以下内容:
51
+ - 在仓库中创建 `.github/workflows/release-pull-request.yml` 文件,填入以下内容:
52
52
 
53
53
  ```yaml
54
54
  name: Release Pull Request
@@ -57,8 +57,15 @@ on:
57
57
  workflow_dispatch:
58
58
  inputs:
59
59
  version:
60
- description: 'Release Version(v1.0.0)'
60
+ type: choice
61
+ description: 'Release Type(canary, beta, alpha, latest)'
61
62
  required: true
63
+ default: 'latest'
64
+ options:
65
+ - canary
66
+ - beta
67
+ - alpha
68
+ - latest
62
69
 
63
70
  jobs:
64
71
  release:
@@ -71,37 +78,40 @@ jobs:
71
78
  # This makes Actions fetch only one branch to release
72
79
  fetch-depth: 100
73
80
 
81
+ - ... # install dependencies and build repo package
74
82
  - name: Create Release Pull Request
75
- uses: web-infra-dev/actions@main
83
+ uses: web-infra-dev/actions@v2
76
84
  with:
77
- # this expects you to have a script called release which does a build for your packages and calls changeset publish
78
- versionNumber: ${{ github.event.inputs.version }}
85
+ version: ${{ github.event.inputs.version }}
86
+ versionNumber: 'auto'
79
87
  type: 'pull request'
88
+ tools: 'modern'
80
89
  env:
81
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90
+ GITHUB_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}
91
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
82
92
  REPOSITORY: ${{ github.repository }}
83
93
  REF: ${{ github.ref }}
84
94
  ```
85
95
 
86
- 将 Workflow 合并到主分支后,进入 Github 仓库对应的 Action 页面,选择 Release Pull Request:
96
+ - 将 Workflow 合并到主分支后,进入 Github 仓库对应的 Action 页面,选择 Release Pull Request:
87
97
 
88
98
  ![Release Pull Request Action](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/action-pull-request.png)
89
99
 
90
- 选择本次发布的分支并填入版本号,版本号格式推荐 v1.0.0,点击 Run workflow 按钮:
100
+ - 选择本次发布类型,点击 Run workflow 按钮:
91
101
 
92
- ![Run Release Pull Request](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/run-pull-request-action.png)
102
+ ![Run Release Pull Request](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/action-pull-request.jpeg)
93
103
 
94
- workflow 运行完成后将自动创建 `Release-${version}` 的 Pull Request,自动完成 `bump` changeset 相关版本号并更新 lock 文件,Pull Request 的内容为执行 `gen-release-note` 命令自动生成的 Release Note。
104
+ - Workflow 运行完成后将自动创建 `Release-${version}` 的 Pull Request,自动完成 `bump` changeset 相关版本号并更新 lock 文件,Pull Request 的内容为执行 `gen-release-note` 命令自动生成的 Release Note。
95
105
 
96
- ![Release Pull Request](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/release-pull-request.png)
106
+ ![Release Pull Request](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/release-pull-request.jpeg)
97
107
 
98
108
  ### 自动 Release
99
109
 
100
- Modern.js 提供了自动创建发版 Pull Request 的 Github Action,提供基于选择的分支自动执行 release 操作,将包发布到 NPM 上。
110
+ Modern.js 提供了自动发布版本 的 Github Action,提供基于选择的分支自动执行 release 操作,将包发布到 NPM 上。
101
111
 
102
112
  #### 使用
103
113
 
104
- 在仓库中创建 `.github/workflows/release.yml` 文件,填入以下内容:
114
+ - 在仓库中创建 `.github/workflows/release.yml` 文件,填入以下内容:
105
115
 
106
116
  ```yaml
107
117
  name: Release
@@ -111,14 +121,14 @@ on:
111
121
  inputs:
112
122
  version:
113
123
  type: choice
114
- description: 'Release Version(canary, alpha, pre, latest)'
124
+ description: 'Release Version(canary, beta, alpha, latest)'
115
125
  required: true
116
- default: 'canary'
126
+ default: 'next'
117
127
  options:
118
- - canary
119
- - alpha
120
- - pre
121
- - latest
128
+ - canary
129
+ - beta
130
+ - alpha
131
+ - latest
122
132
  branch:
123
133
  description: 'Release Branch(confirm release branch)'
124
134
  required: true
@@ -135,13 +145,14 @@ jobs:
135
145
  # This makes Actions fetch only one branch to release
136
146
  fetch-depth: 1
137
147
 
148
+ - ... # install dependencies and build repo package
138
149
  - name: Release
139
- uses: web-infra-dev/actions@main
150
+ uses: web-infra-dev/actions@v2
140
151
  with:
141
- # this expects you to have a script called release which does a build for your packages and calls changeset publish
142
152
  version: ${{ github.event.inputs.version }}
143
153
  branch: ${{ github.event.inputs.branch }}
144
154
  type: 'release'
155
+ tools: 'modern'
145
156
  env:
146
157
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
147
158
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -149,16 +160,16 @@ jobs:
149
160
  REF: ${{ github.ref }}
150
161
  ```
151
162
 
152
- 配置仓库的 NPM_TOKEN:
163
+ - 配置仓库的 NPM_TOKEN:
153
164
 
154
165
  ![配置 Token](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/github-set-npm-token.png)
155
166
 
156
- 将 Workflow 合并到主分支后,进入 Github 仓库对应的 Action 页面,选择 Release:
167
+ - 将 Workflow 合并到主分支后,进入 Github 仓库对应的 Action 页面,选择 Release:
157
168
 
158
169
  ![Release Action](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/release-action.png)
159
170
 
160
- 选择分支名称和发布版本类型,点击 Run workflow 按钮:
171
+ - 选择分支名称和发布版本类型,点击 Run workflow 按钮:
161
172
 
162
173
  ![Run Release Action](https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/run-release-workflow.png)
163
174
 
164
- Workflow 将自动完成仓库 build 和发布到 NPM 流程。
175
+ - Workflow 将自动完成仓库 build 和发布到 NPM 流程。