@modern-js/main-doc 2.42.2 → 2.43.0

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 (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",