Skip to content

Commit cca5b65

Browse files
committed
docs: add zh translation for architecture guide
1 parent 10119f9 commit cca5b65

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed
Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
11
# 架构
22

3-
> TODO
3+
## 概览
4+
5+
![vuepress-architecture-overview](/images/guide/vuepress-architecture-overview.png)
6+
7+
上图展示了 VuePress 的简要架构:
8+
9+
- Node App 会生成临时文件,包括布局、页面、路由等。
10+
- Bundler 会将 Client App 和临时文件一起进行打包,就像处理一个普通的 Vue SPA 一样。
11+
12+
作为开发者,你必须要意识到 VuePress 分为两个主要部分: **Node App****Client App** ,这一点对于开发插件和主题来说都十分重要。
13+
14+
- 插件或者主题的入口文件会在 Node App 中被加载,因此它们需要使用 CommonJS 格式。
15+
- 客户端文件会在 Client App 中被加载,也就是会被 Bundler 处理。比如布局、组件、App Setup 文件、App Enhance 文件等。它们最好使用 ESM 格式。
16+
17+
## 核心流程与 Hooks
18+
19+
![vuepress-core-process](/images/guide/vuepress-core-process.png)
20+
21+
上图展示了 VuePress 的核心流程以及 [Plugin API](../../reference/plugin-api.md) 的 Hooks :
22+
23+
-**init** 阶段:
24+
- 主题和插件会被加载。这意味着插件需要在初始化之前使用。
25+
- 页面文件会被加载。由于我们要使用 markdown-it 来解析 Markdown 文件,因此 [extendsMarkdown](../../reference/plugin-api.md#extendsmarkdown) 会在这之前调用。
26+
-**prepare** 阶段:
27+
- 临时文件会被生成,因此所有和客户端文件相关的 Hooks 会在此处调用。
28+
-**dev / build** 阶段:
29+
- Bundler 会被加载。由于 [alias](../../reference/plugin-api.md#alias)[define](../../reference/plugin-api.md#define) 依赖于 Bundler 的配置,所以它们会在此处调用。

0 commit comments

Comments
 (0)