@zhin.js/console 1.0.12 → 1.0.14

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @zhin.js/console
2
2
 
3
+ ## 1.0.14
4
+
5
+ ### Patch Changes
6
+
7
+ - d16a69c: fix: test trust publish
8
+ - Updated dependencies [d16a69c]
9
+ - @zhin.js/client@1.0.6
10
+ - @zhin.js/core@1.0.18
11
+ - @zhin.js/http@1.0.9
12
+
13
+ ## 1.0.13
14
+
15
+ ### Patch Changes
16
+
17
+ - 3bc5d56: fix: 内存优化
18
+ - Updated dependencies [3bc5d56]
19
+ - @zhin.js/core@1.0.17
20
+
3
21
  ## 1.0.12
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -24,10 +24,34 @@ Zhin 机器人框架的 Web 控制台插件,提供开发环境下的可视化
24
24
 
25
25
  ## 安装
26
26
 
27
+ ### 开发环境(完整安装)
28
+
27
29
  ```bash
28
30
  npm install @zhin.js/console
31
+ # 或
32
+ pnpm add @zhin.js/console
33
+ ```
34
+
35
+ ### 生产环境(轻量安装)
36
+
37
+ **重要**:生产环境不需要 React、Vite 等依赖!
38
+
39
+ 前端代码已在构建时打包到 `dist/` 目录,运行时只需要:
40
+ - `mime`:文件类型识别
41
+ - `ws`:WebSocket 服务器
42
+
43
+ ```bash
44
+ # 生产环境安装(自动跳过 devDependencies)
45
+ npm install @zhin.js/console --production
46
+ # 或
47
+ pnpm add @zhin.js/console --prod
29
48
  ```
30
49
 
50
+ **效果**:
51
+ - ✅ 磁盘占用:~2MB(vs 开发环境 ~200MB)
52
+ - ✅ 运行时内存:17MB(直接读取静态文件)
53
+ - ✅ 依赖数量:2 个(vs 开发环境 20+ 个)
54
+
31
55
  ## 使用
32
56
 
33
57
  ### 基本配置
@@ -38,7 +62,7 @@ import '@zhin.js/console'
38
62
  ```
39
63
 
40
64
  插件会自动:
41
- 1. 启动 Vite 开发服务器
65
+ 1. 启动 Vite 开发服务器(开发模式)
42
66
  2. 配置路由中间件
43
67
  3. 设置 WebSocket 连接
44
68
  4. 提供静态文件服务
@@ -50,6 +74,125 @@ import '@zhin.js/console'
50
74
  http://localhost:8086/vite/
51
75
  ```
52
76
 
77
+ ### 配置选项
78
+
79
+ 在 `zhin.config.yml` 中配置 console 插件:
80
+
81
+ ```yaml
82
+ plugins:
83
+ console:
84
+ # 是否启用控制台插件,默认 true
85
+ enabled: true
86
+
87
+ # 是否延迟加载 Vite(开发模式),默认 false
88
+ # false: 启动时立即加载 Vite(推荐,确保 addEntry 等功能可用)
89
+ # true: 首次访问时才启动 Vite(节省 ~23MB 内存,但可能导致其他插件功能异常)
90
+ lazyLoad: false
91
+ ```
92
+
93
+ #### ⚠️ 关于 lazyLoad 的重要说明
94
+
95
+ **默认值为 `false`(不延迟加载)**,原因:
96
+
97
+ 1. **其他插件依赖 `addEntry`**:`@zhin.js/adapter-sandbox`、`@zhin.js/adapter-icqq` 等插件需要在启动时调用 `web.addEntry()` 注册前端入口
98
+ 2. **WebSocket 需要提前准备**:实时通信功能需要 WebSocket 服务器立即可用
99
+ 3. **用户体验更好**:访问控制台时立即可用,无需等待 Vite 启动
100
+
101
+ **如果你确定不需要这些功能**,可以启用延迟加载节省内存:
102
+ ```yaml
103
+ plugins:
104
+ console:
105
+ lazyLoad: true # 节省 ~23MB 启动内存
106
+ ```
107
+ - ✅ 启动时内存: **18-20MB**
108
+ - ⚠️ 首次访问控制台: **+23MB**(Vite + React 生态)
109
+ - 💡 适合:不常访问控制台的生产环境
110
+
111
+ **立即加载模式**:
112
+ ```yaml
113
+ plugins:
114
+ console:
115
+ lazyLoad: false
116
+ ```
117
+ - ⚠️ 启动时内存: **42MB**
118
+ - ✅ 访问控制台: 无延迟
119
+ - 💡 适合:频繁使用控制台的开发环境
120
+
121
+ **禁用控制台**:
122
+ ```yaml
123
+ plugins:
124
+ console:
125
+ enabled: false
126
+ ```
127
+ - ✅ 内存: **0MB**(不加载)
128
+ - 💡 适合:生产环境或不需要 Web 控制台
129
+
130
+ ## 生产环境优化
131
+
132
+ ### 依赖优化
133
+
134
+ Console 插件采用**构建时打包**策略:
135
+
136
+ **构建时**(开发环境):
137
+ ```bash
138
+ # 安装所有依赖(包括 React、Vite)
139
+ pnpm install
140
+
141
+ # 构建前端到 dist/ 目录
142
+ pnpm --filter @zhin.js/console build:client
143
+ ```
144
+
145
+ **运行时**(生产环境):
146
+ ```bash
147
+ # 只安装生产依赖(mime + ws)
148
+ pnpm install --prod
149
+
150
+ # 直接读取 dist/ 静态文件,无需 React
151
+ NODE_ENV=production pnpm start
152
+ ```
153
+
154
+ **节省效果**:
155
+ - ✅ 磁盘空间: ~200MB → ~2MB(98% 减少)
156
+ - ✅ 依赖数量: 20+ → 2(90% 减少)
157
+ - ✅ 运行时内存: 保持 17MB(无额外开销)
158
+
159
+ ### 环境变量
160
+
161
+ ```bash
162
+ # 生产模式(使用预构建的静态文件)
163
+ NODE_ENV=production pnpm start
164
+
165
+ # 开发模式(使用 Vite HMR)
166
+ NODE_ENV=development pnpm dev
167
+ ```
168
+
169
+ ### 部署建议
170
+
171
+ 1. **仅 API 服务**:禁用 console 插件
172
+ ```yaml
173
+ plugins:
174
+ console:
175
+ enabled: false
176
+ ```
177
+
178
+ 2. **需要 Web 控制台**:使用静态模式
179
+ ```bash
180
+ # 构建前端
181
+ pnpm --filter @zhin.js/console build:client
182
+
183
+ # 生产环境启动(自动使用静态文件)
184
+ NODE_ENV=production pnpm start
185
+ ```
186
+
187
+ 3. **开发环境**:使用完整功能
188
+ ```bash
189
+ # 安装所有依赖(包括可选依赖)
190
+ pnpm install
191
+
192
+ # 开发模式启动
193
+ pnpm dev
194
+ ```
195
+
53
196
  ## 核心功能
54
197
 
55
198
  ### Web 服务器集成
@@ -13,6 +13,10 @@ interface PluginDetail {
13
13
  description: string
14
14
  commands: Array<{
15
15
  name: string
16
+ desc?: string[]
17
+ usage?: string[]
18
+ examples?: string[]
19
+ help?: string
16
20
  }>
17
21
  components: Array<{
18
22
  name: string
@@ -210,11 +214,35 @@ export default function DashboardPluginDetail() {
210
214
  <Separator size="4" />
211
215
  <Flex direction="column" gap="2" className="max-h-60 overflow-y-auto">
212
216
  {plugin.commands.map((cmd, index) => (
213
- <Box key={index} className="rounded-lg bg-gray-50 dark:bg-gray-900 p-2">
214
- <Flex direction="column" gap="1">
215
- <Flex align="center" gap="2">
216
- <Code size="2">{cmd.name}</Code>
217
- </Flex>
217
+ <Box key={index} className="rounded-lg bg-gray-50 dark:bg-gray-900 p-3">
218
+ <Flex direction="column" gap="2">
219
+ <Code size="2" weight="bold">{cmd.name}</Code>
220
+
221
+ {cmd.desc && cmd.desc.length > 0 && (
222
+ <Flex direction="column" gap="1">
223
+ {cmd.desc.map((desc, i) => (
224
+ <Text key={i} size="1" color="gray">{desc}</Text>
225
+ ))}
226
+ </Flex>
227
+ )}
228
+
229
+ {cmd.usage && cmd.usage.length > 0 && (
230
+ <Flex direction="column" gap="1">
231
+ <Text size="1" weight="bold" color="blue">用法:</Text>
232
+ {cmd.usage.map((usage, i) => (
233
+ <Code key={i} size="1" variant="soft">{usage}</Code>
234
+ ))}
235
+ </Flex>
236
+ )}
237
+
238
+ {cmd.examples && cmd.examples.length > 0 && (
239
+ <Flex direction="column" gap="1">
240
+ <Text size="1" weight="bold" color="green">示例:</Text>
241
+ {cmd.examples.map((example, i) => (
242
+ <Code key={i} size="1" variant="soft" color="green">{example}</Code>
243
+ ))}
244
+ </Flex>
245
+ )}
218
246
  </Flex>
219
247
  </Box>
220
248
  ))}