@modern-js/main-doc 2.42.2 → 2.43.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. package/docs/en/apis/app/runtime/web-server/middleware.mdx +3 -3
  2. package/docs/en/configure/app/server/ssr.mdx +2 -0
  3. package/docs/en/guides/advanced-features/optimize-bundle.mdx +1 -1
  4. package/docs/en/guides/advanced-features/ssr/_category_.json +8 -0
  5. package/docs/en/guides/advanced-features/ssr/cache.mdx +186 -0
  6. package/docs/en/guides/advanced-features/ssr/index.mdx +22 -0
  7. package/docs/en/guides/advanced-features/ssr/stream.mdx +236 -0
  8. package/docs/en/guides/advanced-features/ssr/usage.mdx +341 -0
  9. package/docs/en/guides/basic-features/css.mdx +2 -13
  10. package/docs/en/guides/get-started/tech-stack.mdx +1 -1
  11. package/docs/en/guides/topic-detail/framework-plugin/introduction.mdx +63 -16
  12. package/docs/zh/apis/app/runtime/web-server/middleware.mdx +4 -4
  13. package/docs/zh/configure/app/server/ssr.mdx +2 -0
  14. package/docs/zh/guides/advanced-features/optimize-bundle.mdx +1 -1
  15. package/docs/zh/guides/advanced-features/ssr/_category_.json +8 -0
  16. package/docs/zh/guides/advanced-features/ssr/cache.mdx +189 -0
  17. package/docs/zh/guides/advanced-features/ssr/index.mdx +22 -0
  18. package/docs/zh/guides/advanced-features/ssr/stream.mdx +240 -0
  19. package/docs/zh/guides/advanced-features/{ssr.mdx → ssr/usage.mdx} +7 -225
  20. package/docs/zh/guides/basic-features/css.mdx +2 -13
  21. package/docs/zh/guides/basic-features/data/data-write.mdx +1 -1
  22. package/docs/zh/guides/get-started/tech-stack.mdx +1 -1
  23. package/docs/zh/guides/topic-detail/framework-plugin/introduction.mdx +61 -16
  24. package/package.json +7 -7
@@ -22,7 +22,7 @@ Modern.js 内置了 [PostCSS](https://postcss.org/) 来转换 CSS 代码。
22
22
 
23
23
  ## 使用 CSS Modules
24
24
 
25
- 请阅读 [使用 CSS Modules](https://modernjs.dev/builder/guide/basic/css-modules.html) 章节来了解 CSS Modules 的完整用法。
25
+ 请阅读 [使用 CSS Modules](/guides/basic-features/css-modules) 章节来了解 CSS Modules 的完整用法。
26
26
 
27
27
  ## 使用 CSS-in-JS
28
28
 
@@ -72,18 +72,7 @@ Modern.js 内部集成了 Babel 的 [babel-plugin-styled-components](https://git
72
72
  ? 请选择功能名称 启用 「Tailwind CSS」 支持
73
73
  ```
74
74
 
75
- 成功开启后,会看到 `package.json` 中新增了依赖:
76
-
77
- ```json title="./package.json"
78
- {
79
- "dependencies": {
80
- "tailwindcss": "^3.0.0"
81
- },
82
- "devDependencies": {
83
- "@modern-js/plugin-tailwindcss": "^2.0.0"
84
- }
85
- }
86
- ```
75
+ 成功开启后,你会看到 `package.json` 中新增了 `tailwindcss` 和 `@modern-js/plugin-tailwindcss` 依赖。
87
76
 
88
77
  2. 在 `modern.config.ts` 中注册 Tailwind 插件:
89
78
 
@@ -84,7 +84,7 @@ Modern.js 中提供 Data Action 主要是为了使 UI 和服务器的状态能
84
84
  ![state manage](https://lf3-static.bytednsdoc.com/obj/eden-cn/ulkl/ljhwZthlaukjlkulzlp/action-state-manage1.png)
85
85
 
86
86
  如果项目中组件共享的数据主要服务端的状态,则无需在项目引入客户端状态管理库,使用 Data Loader 请求数据,通过 [`useRouteLoaderData`](/guides/basic-features/data/data-fetch.md) 在子组件中共享数据,
87
- 通过 Data Actino 修改和同步服务端的状态。
87
+ 通过 Data Action 修改和同步服务端的状态。
88
88
 
89
89
 
90
90
 
@@ -97,7 +97,7 @@ Modern.js 支持 [Sass](https://sass-lang.com/)、[Less](https://lesscss.org/)
97
97
 
98
98
  Modern.js 对 [CSS Modules](https://github.com/css-modules/css-modules) 提供了开箱即用的支持,内部基于 [css-loader](https://www.npmjs.com/package/css-loader) 实现。
99
99
 
100
- 请参考[「使用 CSS Modules」](https://modernjs.dev/builder/guide/basic/css-modules.html) 来使用。
100
+ 请参考[「使用 CSS Modules」](/guides/basic-features/css-modules) 来使用。
101
101
 
102
102
  ---
103
103
 
@@ -6,29 +6,74 @@ sidebar_position: 1
6
6
 
7
7
  ## Modern.js 插件系统
8
8
 
9
- Modern.js 用于扩展项目运行、请求、渲染等不同阶段功能的系统,主要分为三个部分:Hook 模型、管理器,上下文共享机制。
9
+ Modern.js 提供了一套拥有完整生命周期的插件系统。插件可用于扩展项目运行、请求、渲染等不同阶段功能,
10
10
 
11
- Hook 模型用于确定当前 Hook 的执行方式,不同 Hook 模型的函数拥有不同的执行逻辑。管理器用于控制 Hook 的执行与调度。上下文共享机制用于在不同 Hook 间传递信息。
11
+ ## 使用方式
12
12
 
13
- 目前 Modern.js 提供几种不同的 Hook 模型:
13
+ 插件需要在配置文件中显示注册才能够生效,当需要为 Modern.js 添加插件时,可以将它配置到 [plugin](/configure/app/plugins.html) 字段中:
14
14
 
15
- - Pipeline
16
- - Sync
17
- - Async
18
- - Waterfall
19
- - Sync
20
- - Async
21
- - Workflow
22
- - Sync
23
- - Async
24
- - Parallel(Async)
15
+ ```ts title="edenx.config.ts"
16
+ // an example for bff
17
+ import { appTools, defineConfig } from '@modern-js/app-tools';
18
+ import { bffPlugin } from '@modern-js/plugin-bff';
19
+
20
+ export default defineConfig({
21
+ plugins: [appTools(), bffPlugin()],
22
+ });
23
+ ```
25
24
 
26
25
  :::note
27
- 后续章节详细介绍各个模型的执行方式。
26
+ 注意,该配置仅支持添加 Modern.js 插件,无法添加 Webpack 插件。
27
+ :::
28
+
29
+ ## 官方插件
30
+
31
+ Modern.js 提供了一系列官方插件,并与 Modern.js 生成器结合。所有的官方插件功能,都可以通过执行 `new` 命令开启。例如当需要开启 BFF 功能时:
32
+
33
+ ```bash
34
+ $ npx modern new
35
+ ? 请选择你想要的操作 启用可选功能
36
+ ? 请选择功能名称 (Use arrow keys)
37
+ 启用 「Tailwind CSS」 支持
38
+ ❯ 启用「BFF」功能
39
+ 启用「微前端」模式
40
+ 启用「单元测试 / 集成测试」功能
41
+ 启用「Visual Testing (Storybook)」模式
42
+ ```
43
+
44
+ 完成选择后,Modern.js 生成器会自动安装对应的插件和三方依赖,安装完成后可以看到:
45
+
46
+ ```bash
47
+ [INFO] 依赖自动安装成功
48
+
49
+ [INFO] 安装插件依赖成功!请添加如下代码至 modern.config.ts :
28
50
 
51
+ import { bffPlugin } from '@modern-js/plugin-bff';
52
+ import { expressPlugin } from '@modern-js/plugin-express';
53
+
54
+ export default defineConfig({
55
+ ...,
56
+ plugins: [..., bffPlugin(), expressPlugin()],
57
+ });
58
+ ```
59
+
60
+ 此时,可以按照控制台的输出,将插件添加到配置文件中。
61
+
62
+ ## 插件系统组成
63
+
64
+ Modern.js 插件系统主要分为三个部分:Hook 模型、管理器,上下文共享机制。
65
+
66
+ - Hook 模型用于确定当前 Hook 的执行逻辑。
67
+ - 管理器用于控制 Hook 的执行与调度。
68
+ - 上下文共享机制用于在不同 Hook 间传递信息。
69
+
70
+ 目前 Modern.js 提供几种不同的 Hook 模型:**Pipeline、Waterfall、Workflow**。
71
+
72
+ :::note
73
+ 后续章节详细介绍各个模型的执行方式。
29
74
  :::
30
75
 
31
- 基于 Hook 模型和管理器,Modern.js 暴露了三套插件:CLI、Runtime、Server。
76
+ Modern.js 基于 Hook 模型暴露了三套插件:CLI、Runtime、Server。
32
77
 
33
78
  其中 CLI 插件是 Modern.js 中主要的运行流程控制模型,Modern.js 中绝大部分功能都是主要通过这一套模型运行的。Runtime 插件主要负责处理 React 组件渲染逻辑。Server 插件主要用于对服务端的生命周期以及用户请求的控制。
34
79
 
@@ -48,4 +93,4 @@ Modern.js 的所有功能都是通过这套插件实现的,这意味着 Modern
48
93
  - 自定义 React 组件客户端/服务器端渲染
49
94
  - ...
50
95
 
51
- 当 Modern.js 暂时没有覆盖到你所需要的功能或场景时,可以开发一个自定义插件,来实现适配特殊场景的相关功能。
96
+ 当 Modern.js 暂时没有覆盖到所需要的功能或场景时,可以开发一个自定义插件,来实现适配特殊场景的相关功能。
package/package.json CHANGED
@@ -15,17 +15,17 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.42.2",
18
+ "version": "2.43.0",
19
19
  "publishConfig": {
20
20
  "registry": "https://registry.npmjs.org/",
21
21
  "access": "public",
22
22
  "provenance": true
23
23
  },
24
24
  "dependencies": {
25
- "@modern-js/sandpack-react": "2.42.2"
25
+ "@modern-js/sandpack-react": "2.43.0"
26
26
  },
27
27
  "peerDependencies": {
28
- "@modern-js/builder-doc": "^2.42.2"
28
+ "@modern-js/builder-doc": "^2.43.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "classnames": "^2",
@@ -35,12 +35,12 @@
35
35
  "ts-node": "^10.9.1",
36
36
  "typescript": "^5",
37
37
  "fs-extra": "^10",
38
- "rspress": "1.8.2",
39
- "@rspress/shared": "1.8.2",
38
+ "rspress": "1.8.3",
39
+ "@rspress/shared": "1.8.3",
40
40
  "@types/node": "^16",
41
41
  "@types/fs-extra": "9.0.13",
42
- "@modern-js/doc-plugin-auto-sidebar": "2.42.2",
43
- "@modern-js/builder-doc": "2.42.2"
42
+ "@modern-js/builder-doc": "2.43.0",
43
+ "@modern-js/doc-plugin-auto-sidebar": "2.43.0"
44
44
  },
45
45
  "scripts": {
46
46
  "dev": "rspress dev",