@modern-js/main-doc 2.51.0 → 2.53.0
Sign up to get free protection for your applications and to get access to all the features.
- package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +30 -4
- package/docs/en/guides/advanced-features/web-server.mdx +4 -2
- package/docs/en/guides/basic-features/data/data-fetch.mdx +28 -0
- package/docs/en/guides/basic-features/deploy.mdx +143 -33
- package/docs/en/guides/basic-features/routes.mdx +2 -2
- package/docs/en/guides/get-started/tech-stack.mdx +0 -6
- package/docs/en/guides/topic-detail/framework-plugin/plugin-api.mdx +1 -1
- package/docs/en/guides/topic-detail/generator/create/option.md +0 -5
- package/docs/en/guides/topic-detail/generator/create/use.mdx +1 -10
- package/docs/en/guides/topic-detail/generator/new/config.md +0 -29
- package/docs/en/guides/topic-detail/generator/new/use.md +0 -20
- package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +30 -4
- package/docs/zh/guides/advanced-features/web-server.mdx +1 -1
- package/docs/zh/guides/basic-features/data/data-fetch.mdx +27 -2
- package/docs/zh/guides/basic-features/deploy.mdx +140 -36
- package/docs/zh/guides/basic-features/routes.mdx +2 -2
- package/docs/zh/guides/get-started/tech-stack.mdx +0 -6
- package/docs/zh/guides/topic-detail/framework-plugin/plugin-api.mdx +1 -1
- package/docs/zh/guides/topic-detail/generator/create/option.md +0 -5
- package/docs/zh/guides/topic-detail/generator/create/use.mdx +1 -10
- package/docs/zh/guides/topic-detail/generator/new/config.md +0 -31
- package/docs/zh/guides/topic-detail/generator/new/use.md +0 -20
- package/package.json +5 -5
- package/docs/en/apis/app/runtime/testing/_category_.json +0 -4
- package/docs/en/apis/app/runtime/testing/act.mdx +0 -35
- package/docs/en/apis/app/runtime/testing/cleanup.mdx +0 -40
- package/docs/en/apis/app/runtime/testing/render.mdx +0 -71
- package/docs/en/apis/app/runtime/testing/renderApp.mdx +0 -34
- package/docs/en/configure/app/testing/_category_.json +0 -4
- package/docs/en/configure/app/testing/transformer.mdx +0 -17
- package/docs/en/configure/app/tools/jest.mdx +0 -40
- package/docs/en/guides/advanced-features/testing.mdx +0 -47
- package/docs/en/guides/topic-detail/changesets/_category_.json +0 -4
- package/docs/en/guides/topic-detail/changesets/add.mdx +0 -125
- package/docs/en/guides/topic-detail/changesets/changelog.mdx +0 -238
- package/docs/en/guides/topic-detail/changesets/commit.mdx +0 -269
- package/docs/en/guides/topic-detail/changesets/config.mdx +0 -147
- package/docs/en/guides/topic-detail/changesets/github.mdx +0 -175
- package/docs/en/guides/topic-detail/changesets/introduce.mdx +0 -56
- package/docs/en/guides/topic-detail/changesets/release-note.mdx +0 -274
- package/docs/en/guides/topic-detail/changesets/release-pre.mdx +0 -49
- package/docs/en/guides/topic-detail/changesets/release.mdx +0 -229
- package/docs/en/guides/topic-detail/model/test-model.mdx +0 -45
- package/docs/zh/apis/app/runtime/testing/_category_.json +0 -4
- package/docs/zh/apis/app/runtime/testing/act.mdx +0 -35
- package/docs/zh/apis/app/runtime/testing/cleanup.mdx +0 -40
- package/docs/zh/apis/app/runtime/testing/render.mdx +0 -71
- package/docs/zh/apis/app/runtime/testing/renderApp.mdx +0 -32
- package/docs/zh/configure/app/testing/_category_.json +0 -4
- package/docs/zh/configure/app/testing/transformer.mdx +0 -19
- package/docs/zh/configure/app/tools/jest.mdx +0 -40
- package/docs/zh/guides/advanced-features/testing.mdx +0 -47
- package/docs/zh/guides/topic-detail/changesets/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/changesets/add.mdx +0 -126
- package/docs/zh/guides/topic-detail/changesets/changelog.mdx +0 -238
- package/docs/zh/guides/topic-detail/changesets/commit.mdx +0 -269
- package/docs/zh/guides/topic-detail/changesets/config.mdx +0 -147
- package/docs/zh/guides/topic-detail/changesets/github.mdx +0 -175
- package/docs/zh/guides/topic-detail/changesets/introduce.mdx +0 -56
- package/docs/zh/guides/topic-detail/changesets/release-note.mdx +0 -274
- package/docs/zh/guides/topic-detail/changesets/release-pre.mdx +0 -50
- package/docs/zh/guides/topic-detail/changesets/release.mdx +0 -231
- package/docs/zh/guides/topic-detail/model/test-model.mdx +0 -45
- package/docs/zh/guides/topic-detail/monorepo/_category_.json +0 -4
- package/docs/zh/guides/topic-detail/monorepo/create-sub-project.mdx +0 -53
- package/docs/zh/guides/topic-detail/monorepo/intro.mdx +0 -14
- package/docs/zh/guides/topic-detail/monorepo/publish.mdx +0 -69
- package/docs/zh/guides/topic-detail/monorepo/sub-project-interface.mdx +0 -143
@@ -1,69 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 4
|
3
|
-
---
|
4
|
-
|
5
|
-
# 可复用模块的发布
|
6
|
-
|
7
|
-
在 Monorepo 中有时会需要把多个模块项目发布到 [NPM](https://www.npmjs.com/) 上,本章将要介绍如果在 Monorepo 中对子项目进行版本更新以及发布。
|
8
|
-
|
9
|
-
## 准备工作
|
10
|
-
|
11
|
-
接着 [子项目联调](/guides/topic-detail/monorepo/sub-project-interface) 章节的例子,我们对 `components` 模块进行发布。
|
12
|
-
|
13
|
-
## 生成变更记录
|
14
|
-
|
15
|
-
在开发阶段,当某个模块的功能开完完成之后,一般需要提交代码(例如提交到 [GitHub](https://github.com/) 上)并需要记录本次修改的内容。在 Modern.js 的 Monorepo 工程中,我们可以在 monorepo 根目录执行命令:
|
16
|
-
|
17
|
-
```
|
18
|
-
pnpm run change
|
19
|
-
```
|
20
|
-
|
21
|
-
然后根据提示选择变更或者将要发布的包以及选择包升级的版本,并填写变更信息。变更信息的内容可以包含此次开发的功能、修复的问题等。
|
22
|
-
|
23
|
-
那么对于上面的例子,我们选择变更的项目为 `components`,并填写此次变更的内容:
|
24
|
-
|
25
|
-
```
|
26
|
-
$ modern change
|
27
|
-
🦋 Which packages would you like to include? · components
|
28
|
-
🦋 Which packages should have a major bump? · No items were selected
|
29
|
-
🦋 Which packages should have a minor bump? · components
|
30
|
-
🦋 Please enter a summary for this change (this will be in the changelogs). Submit empty line to open external editor
|
31
|
-
🦋 Summary · add features
|
32
|
-
🦋 === Releasing the following packages ===
|
33
|
-
🦋 [Minor]
|
34
|
-
🦋 components
|
35
|
-
🦋 ╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
|
36
|
-
🦋 ║ ========= NOTE ======== ║
|
37
|
-
🦋 ║All dependents of these packages that will be incompatible with the new version will be patch bumped when this changeset is applied.║
|
38
|
-
🦋 ╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
|
39
|
-
🦋 Is this your desired changeset? (Y/n) · true
|
40
|
-
🦋 Changeset added! - you can now commit it
|
41
|
-
🦋
|
42
|
-
🦋 If you want to modify or expand on the changeset summary, you can find it here
|
43
|
-
🦋 info /Users/demo/modern-js/official/monorepo-pnpm/.changeset/silent-tigers-run.md
|
44
|
-
```
|
45
|
-
|
46
|
-
该命令完成后,在 `.changeset` 中会有新的 `silent-tigers-run.md` 文件生成,其中包含了刚刚填写的信息,这些新生成的文件将用于后面发布流程中使用。**因此在提交代码的时候,需要将`.changeset` 目录下的文件一并提交**。
|
47
|
-
|
48
|
-
## 版本更新
|
49
|
-
|
50
|
-
在模块发布之前,还需要将模块的版本进行更新。。在 Modern.js 的 Monorepo 工程中,可以在 Monorepo 项目根目录下执行:
|
51
|
-
|
52
|
-
```
|
53
|
-
pnpm run bump
|
54
|
-
```
|
55
|
-
|
56
|
-
该命令会根据之前生成在 `.changeset` 目录下的文件自动更新对应模块的版本号和 CHANGELOG 信息,执行成功后会看到:
|
57
|
-
|
58
|
-
```
|
59
|
-
🦋 All files have been updated. Review them and commit at your leisure
|
60
|
-
```
|
61
|
-
|
62
|
-
## 发布
|
63
|
-
|
64
|
-
最后执行 `pnpm run prepare --filter {./packages} && pnpm run release`,便可以发布对应的模块了。
|
65
|
-
|
66
|
-
:::info 补充信息
|
67
|
-
在上面的命令中 --filter \{./packages\} 用于筛选位于 `./packages` 目录下的子项目,可以通过 [PNPM Filtering](https://pnpm.io/filtering) 来了解更多它的使用。
|
68
|
-
|
69
|
-
:::
|
@@ -1,143 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sidebar_position: 3
|
3
|
-
---
|
4
|
-
|
5
|
-
# 子项目联调
|
6
|
-
|
7
|
-
本章将要介绍如何在 Monorepo 下进行子项目之间的联调使用。
|
8
|
-
|
9
|
-
## 准备工作
|
10
|
-
|
11
|
-
按照 [「创建子项目」](/guides/topic-detail/monorepo/create-sub-project) 章节的介绍(如果还没有看过,可以先了解一下),我们首先创建以下三个子项目:
|
12
|
-
|
13
|
-
- 一个「应用」子项目
|
14
|
-
- 一个「模块」子项目
|
15
|
-
|
16
|
-
执行 `pnpm run new`,并按照如下进行选择:
|
17
|
-
|
18
|
-
**「应用」子项目:**
|
19
|
-
|
20
|
-
```
|
21
|
-
? 请选择你想创建的工程类型:Web 应用
|
22
|
-
? 请填写子项目名称:app
|
23
|
-
? 请填写子项目目录名称:app
|
24
|
-
? 请选择开发语言:TS
|
25
|
-
```
|
26
|
-
|
27
|
-
**「模块」子项目:**
|
28
|
-
|
29
|
-
```
|
30
|
-
? 请选择你想创建的工程类型:Npm 模块
|
31
|
-
? 请填写子项目名称:components
|
32
|
-
? 请填写子项目目录名称:components
|
33
|
-
? 请选择开发语言:TS
|
34
|
-
```
|
35
|
-
|
36
|
-
创建成功后,会得到以下项目:
|
37
|
-
|
38
|
-
- `./apps/app`
|
39
|
-
- `./packages/components`
|
40
|
-
|
41
|
-
然后修改一下默认的代码和新增文件:
|
42
|
-
|
43
|
-
**重命名 `./packages/components/src/index.tsx`**
|
44
|
-
|
45
|
-
```tsx
|
46
|
-
import './index.css';
|
47
|
-
|
48
|
-
export default function ({ text }: { text: string }) {
|
49
|
-
return (
|
50
|
-
<div>
|
51
|
-
This is UI Components Log: <p className="log">{text}</p>
|
52
|
-
</div>
|
53
|
-
);
|
54
|
-
}
|
55
|
-
```
|
56
|
-
|
57
|
-
**新增 `./packages/components/src/index.css`**
|
58
|
-
|
59
|
-
```css
|
60
|
-
.log {
|
61
|
-
color: gray;
|
62
|
-
}
|
63
|
-
```
|
64
|
-
|
65
|
-
**修改 `./apps/app/src/App.tsx`**
|
66
|
-
|
67
|
-
```tsx
|
68
|
-
import { Switch, Route } from '@modern-js/runtime/router';
|
69
|
-
import Comp from 'components';
|
70
|
-
|
71
|
-
import './App.css';
|
72
|
-
|
73
|
-
const App = () => (
|
74
|
-
<Switch>
|
75
|
-
<Route exact={true} path="/">
|
76
|
-
<div className="container-box">
|
77
|
-
<Comp text="hello world" />
|
78
|
-
{/* 省略... */}
|
79
|
-
</div>
|
80
|
-
</Route>
|
81
|
-
<Route path="*">
|
82
|
-
<div>404</div>
|
83
|
-
</Route>
|
84
|
-
</Switch>
|
85
|
-
);
|
86
|
-
|
87
|
-
export default App;
|
88
|
-
```
|
89
|
-
|
90
|
-
到此为止我们创建了一个可以被发布到外部的组件项目以及一个使用组件的应用项目,如果直接运行应用项目还暂时无法正常使用。接下来将要介绍如何让它们能够互相联调使用,成功的使应用子项目 `apps/app` 正常运行。
|
91
|
-
|
92
|
-
:::info
|
93
|
-
启动 `apps/app` 项目之前需要先构建(`pnpm run build`) `packages/component`。
|
94
|
-
|
95
|
-
:::
|
96
|
-
|
97
|
-
由于 Modern.js 支持 pnpm 与 Yarn 的 Monorepo 工程,接下来会从这两个方面分别介绍。
|
98
|
-
|
99
|
-
## 在使用 pnpm 的 Monorepo 中进行项目联调
|
100
|
-
|
101
|
-
在 pnpm 的 Monorepo 项目中,我们通过在 `apps/app` 子项目下执行以下命令,将 `packages/components` 子项目加入到应用的依赖列表当中。
|
102
|
-
|
103
|
-
```
|
104
|
-
pnpm add components
|
105
|
-
```
|
106
|
-
|
107
|
-
执行成功后,在 `apps/app/package.json` 会发生如下变化:
|
108
|
-
|
109
|
-
```json
|
110
|
-
{
|
111
|
-
"dependencies": {
|
112
|
-
++ "components": "workspace:^0.1.0"
|
113
|
-
},
|
114
|
-
}
|
115
|
-
```
|
116
|
-
|
117
|
-
:::info 补充信息
|
118
|
-
`workspace:^0.1.0` 是一种 PNPM 提供的 [Workspace 协议](https://pnpm.io/workspaces#workspace-protocol-workspace)。
|
119
|
-
|
120
|
-
:::
|
121
|
-
|
122
|
-
当依赖安装成功之后,我们还需要将 `packages/components` 进行构建,因为需要使用其构建产物。
|
123
|
-
|
124
|
-
到此为止,`app/apps` 应用子项目可以正常的运行了。在修改 `packages/components` 的源码并构建之后,会触发应用子项目的热更新。
|
125
|
-
|
126
|
-
## 在使用 Yarn 的 Monorepo 中进行项目联调
|
127
|
-
|
128
|
-
在 Yarn 的 Monorepo 项目中,默认情况下可以直接在 `apps/app` 应用项目中直接使用组件项目。
|
129
|
-
|
130
|
-
:::info 补充信息
|
131
|
-
之所以可以直接在应用中使用组件项目,是因为 Yarn 将这些子项目模块提升到了顶层的 `node_modules`内。
|
132
|
-
|
133
|
-
:::
|
134
|
-
|
135
|
-
但是考虑到依赖关系的严谨性,建议在 `apps/app/package.json` 中进行显式依赖声明:
|
136
|
-
|
137
|
-
```json
|
138
|
-
{
|
139
|
-
"dependencies": {
|
140
|
-
++ "components": "0.1.0"
|
141
|
-
},
|
142
|
-
}
|
143
|
-
```
|