ms-vite-plugin 1.4.49 → 1.4.51
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/dist/build.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/mcp/doc-tools.js +1 -1
- package/dist/mcp/docs-service.js +1 -1
- package/dist/mcp/types.d.ts +1 -1
- package/dist/mcp/types.js +1 -1
- package/dist/project.js +1 -1
- package/docs/AGENTS.md +3 -2
- package/docs/SKILL.md +2 -1
- package/docs/apilua/action.md +1013 -0
- package/docs/apilua/appleocr.md +281 -0
- package/docs/apilua/cloud.md +183 -0
- package/docs/apilua/config.md +181 -0
- package/docs/apilua/cryptoUtils.md +253 -0
- package/docs/apilua/device.md +485 -0
- package/docs/apilua/dotocr.md +230 -0
- package/docs/apilua/file.md +554 -0
- package/docs/apilua/global.md +654 -0
- package/docs/apilua/hid.md +1126 -0
- package/docs/apilua/hotUpdate.md +167 -0
- package/docs/apilua/http.md +427 -0
- package/docs/apilua/image.md +1177 -0
- package/docs/apilua/ime.md +283 -0
- package/docs/apilua/logger.md +294 -0
- package/docs/apilua/media.md +283 -0
- package/docs/apilua/mysql.md +445 -0
- package/docs/apilua/netCard.md +224 -0
- package/docs/apilua/node.md +264 -0
- package/docs/apilua/opencv.md +870 -0
- package/docs/apilua/paddleocr.md +324 -0
- package/docs/apilua/pip.md +359 -0
- package/docs/apilua/system.md +686 -0
- package/docs/apilua/tomatoocr.md +461 -0
- package/docs/apilua/tts.md +330 -0
- package/docs/apilua/ui.md +1033 -0
- package/docs/apilua/utils.md +222 -0
- package/docs/apilua/yolo.md +324 -0
- package/docs/apilua/yolocls.md +276 -0
- package/docs/mcp-agent-description.md +5 -4
- package/docs/quick/vscode/createProject.md +84 -0
- package/docs/quick/vscode/packProject.md +17 -0
- package/package.json +2 -1
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# YOLO 图像分类模块 (YoloCls)
|
|
2
|
+
|
|
3
|
+
YOLO 图像分类模块基于 YOLOv8-cls / YOLO11-cls / YOLO26-cls 分类模型和 NCNN 框架,提供整图分类、区域分类和模型资源管理能力。
|
|
4
|
+
|
|
5
|
+
## 功能概览
|
|
6
|
+
|
|
7
|
+
- **模型管理**: 加载和释放 YOLOv8-cls / YOLO11-cls / YOLO26-cls NCNN 模型
|
|
8
|
+
- **图像分类**: 对屏幕截图、图片文件、HTTP 图片或图片 ID 执行整图分类
|
|
9
|
+
- **区域分类**: 先裁剪指定区域,再对裁剪结果执行分类
|
|
10
|
+
- **结果处理**: 返回 Ultralytics `Probs` 风格的完整概率、top1、top5 和对应置信度
|
|
11
|
+
- **资源控制**: 支持释放单个模型或释放全部已加载模型
|
|
12
|
+
|
|
13
|
+
## 适用场景
|
|
14
|
+
|
|
15
|
+
- 判断当前屏幕或图片属于哪个业务类别
|
|
16
|
+
- 对截图中的固定区域进行状态识别
|
|
17
|
+
- 对自定义 YOLO-cls 模型导出的 NCNN 模型执行端侧推理
|
|
18
|
+
|
|
19
|
+
## 数据结构
|
|
20
|
+
|
|
21
|
+
### YoloClsProbs
|
|
22
|
+
|
|
23
|
+
YOLO 分类概率结果,字段命名与 Ultralytics `Probs` 保持一致。
|
|
24
|
+
|
|
25
|
+
```lua
|
|
26
|
+
---@class YoloClsProbs
|
|
27
|
+
---@field data number[]
|
|
28
|
+
---@field top1 number | nil
|
|
29
|
+
---@field top5 number[]
|
|
30
|
+
---@field top1conf number | nil
|
|
31
|
+
---@field top5conf number[]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**字段说明:**
|
|
35
|
+
|
|
36
|
+
| 字段名 | 类型 | 描述 |
|
|
37
|
+
| ---------- | ---------------- | ---------------------------------------------------------- |
|
|
38
|
+
| `data` | `number[]` | 所有类别概率数组,下标即类别 ID |
|
|
39
|
+
| `top1` | `number \| nil` | 概率最高的类别 ID;分类失败时为 `nil` |
|
|
40
|
+
| `top5` | `number[]` | 概率最高的 5 个类别 ID,按概率从高到低排序 |
|
|
41
|
+
| `top1conf` | `number \| nil` | `top1` 对应的概率;分类失败时为 `nil` |
|
|
42
|
+
| `top5conf` | `number[]` | `top5` 对应的概率,顺序与 `top5` 一致 |
|
|
43
|
+
|
|
44
|
+
**结果说明:**
|
|
45
|
+
|
|
46
|
+
- `top1` 等于 `top5[0]`,`top1conf` 等于 `data[top1]`。
|
|
47
|
+
- 当模型类别数少于 5 时,`top5` 和 `top5conf` 的长度会小于 5。
|
|
48
|
+
- 分类失败时返回空结果:`data`、`top5`、`top5conf` 为空数组,`top1` 和 `top1conf` 为 `nil`。
|
|
49
|
+
|
|
50
|
+
## API 参考
|
|
51
|
+
|
|
52
|
+
### 模型管理
|
|
53
|
+
|
|
54
|
+
#### load - 加载 YOLO 分类模型(支持 YOLOv8-cls / YOLO11-cls / YOLO26-cls)
|
|
55
|
+
|
|
56
|
+
加载模型是使用图像分类能力的前提。支持 Ultralytics 官方 YOLOv8-cls、YOLO11-cls、YOLO26-cls 导出的 NCNN 分类模型,常见模型名使用 `-cls` 后缀,例如 `yolov8n-cls`、`yolo11n-cls`、`yolo26n-cls`。
|
|
57
|
+
|
|
58
|
+
```lua
|
|
59
|
+
---@param paramPath string
|
|
60
|
+
---@param binPath string
|
|
61
|
+
---@param nc number?
|
|
62
|
+
---@param useGpu boolean?
|
|
63
|
+
---@return string | nil
|
|
64
|
+
function load(paramPath, binPath, nc, useGpu) end
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**参数:**
|
|
68
|
+
|
|
69
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
70
|
+
| ----------- | ------- | -------- | ------ | -------------------------------------------------- |
|
|
71
|
+
| `paramPath` | string | 是 | | NCNN 模型的 param 文件路径 |
|
|
72
|
+
| `binPath` | string | 是 | | NCNN 模型的 bin 文件路径 |
|
|
73
|
+
| `nc` | number | 否 | 0 | 模型类别数量;传 `0` 或省略时按模型输出自动推断,显式传入但不匹配时分类返回空结果 |
|
|
74
|
+
| `useGpu` | boolean | 否 | false | 是否使用 GPU 推理 |
|
|
75
|
+
|
|
76
|
+
**返回值:**
|
|
77
|
+
|
|
78
|
+
| 类型 | 描述 |
|
|
79
|
+
| ---------------- | ----------------------------------------- |
|
|
80
|
+
| `string \| nil` | 加载成功返回模型 ID 字符串,失败返回 nil |
|
|
81
|
+
|
|
82
|
+
**示例:**
|
|
83
|
+
|
|
84
|
+
```lua
|
|
85
|
+
local yoloCls = require("yoloCls")
|
|
86
|
+
-- 模型文件通常放在 res 目录
|
|
87
|
+
local modelId = yoloCls.load(
|
|
88
|
+
"yolo11n_cls_ncnn_model/model.ncnn.param",
|
|
89
|
+
"yolo11n_cls_ncnn_model/model.ncnn.bin",
|
|
90
|
+
1000, -- ImageNet 分类模型通常为 1000 类
|
|
91
|
+
false
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
if modelId then
|
|
95
|
+
print("YOLO 分类模型加载成功,ID = " .. tostring(modelId))
|
|
96
|
+
else
|
|
97
|
+
print("YOLO 分类模型加载失败,请检查模型文件路径和格式")
|
|
98
|
+
end
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 图像分类
|
|
102
|
+
|
|
103
|
+
#### classify - 对输入图像执行分类
|
|
104
|
+
|
|
105
|
+
对整张输入图像执行分类,返回完整概率数组和 top1/top5 结果。
|
|
106
|
+
|
|
107
|
+
```lua
|
|
108
|
+
---@param modelId string
|
|
109
|
+
---@param img string
|
|
110
|
+
---@param targetSize number?
|
|
111
|
+
---@return YoloClsProbs
|
|
112
|
+
function classify(modelId, img, targetSize) end
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**参数:**
|
|
116
|
+
|
|
117
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
118
|
+
| ------------ | ------ | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `modelId` | string | 是 | | 模型 ID(通过 `load` 获取) |
|
|
120
|
+
| `img` | string | 是 | | 图像输入源:<br>- `"screen"` - 使用当前屏幕截图<br>- `string` - 图片文件路径或 HTTP 图片地址<br>- `imageId` - 图片 ID(通过 image 模块获取) |
|
|
121
|
+
| `targetSize` | number | 否 | 224 | 分类输入大小,应与模型训练或导出时的输入尺寸一致 |
|
|
122
|
+
|
|
123
|
+
**返回值:**
|
|
124
|
+
|
|
125
|
+
| 类型 | 描述 |
|
|
126
|
+
| -------------- | --------------------------------------------------- |
|
|
127
|
+
| `YoloClsProbs` | Ultralytics `Probs` 风格分类结果,包含 top1/top5 等 |
|
|
128
|
+
|
|
129
|
+
**示例:**
|
|
130
|
+
|
|
131
|
+
```lua
|
|
132
|
+
local yoloCls = require("yoloCls")
|
|
133
|
+
local modelId = yoloCls.load(
|
|
134
|
+
"yolo11n_cls_ncnn_model/model.ncnn.param",
|
|
135
|
+
"yolo11n_cls_ncnn_model/model.ncnn.bin",
|
|
136
|
+
1000,
|
|
137
|
+
false
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
if not modelId then
|
|
141
|
+
print("模型加载失败")
|
|
142
|
+
return
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
local probs = yoloCls.classify(
|
|
146
|
+
modelId,
|
|
147
|
+
"screen", -- 使用当前屏幕
|
|
148
|
+
224 -- 分类模型常用输入尺寸
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
if probs.top1 ~= nil then
|
|
152
|
+
print("top1 类别ID = " .. tostring(probs.top1))
|
|
153
|
+
print("top1 置信度: " .. tostring((probs.top1conf * 100).toFixed(2)) .. "%")
|
|
154
|
+
else
|
|
155
|
+
print("分类失败或无有效结果")
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
for i = 1, #probs.top5 do
|
|
159
|
+
print(
|
|
160
|
+
"top[" .. tostring(i + 1) .. "] = 类别ID=" .. tostring(probs.top5[i]) .. ", 置信度=" .. tostring(probs.top5conf[i].toFixed(4))
|
|
161
|
+
)
|
|
162
|
+
end
|
|
163
|
+
-- 如需读取某个类别的原始概率,可直接访问 data[classId]
|
|
164
|
+
local classId = 0
|
|
165
|
+
if #probs.data > classId then
|
|
166
|
+
print("类别 " .. tostring(classId) .. " 概率: " .. tostring(probs.data[classId].toFixed(4)))
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
yoloCls.free(modelId)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### classifyRegion - 对指定区域执行分类
|
|
173
|
+
|
|
174
|
+
先从输入图像中裁剪指定区域,再对裁剪结果执行分类。适合只关心屏幕某个固定区域状态的场景。
|
|
175
|
+
|
|
176
|
+
```lua
|
|
177
|
+
---@param modelId string
|
|
178
|
+
---@param img string
|
|
179
|
+
---@param x number?
|
|
180
|
+
---@param y number?
|
|
181
|
+
---@param ex number?
|
|
182
|
+
---@param ey number?
|
|
183
|
+
---@param targetSize number?
|
|
184
|
+
---@return YoloClsProbs
|
|
185
|
+
function classifyRegion(modelId, img, x, y, ex, ey, targetSize) end
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**参数:**
|
|
189
|
+
|
|
190
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
191
|
+
| ------------ | ------ | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
192
|
+
| `modelId` | string | 是 | | 模型 ID(通过 `load` 获取) |
|
|
193
|
+
| `img` | string | 是 | | 图像输入源:<br>- `"screen"` - 使用当前屏幕截图<br>- `string` - 图片文件路径或 HTTP 图片地址<br>- `imageId` - 图片 ID(通过 image 模块获取) |
|
|
194
|
+
| `x` | number | 否 | 0 | 裁剪区域左上角 x 坐标 |
|
|
195
|
+
| `y` | number | 否 | 0 | 裁剪区域左上角 y 坐标 |
|
|
196
|
+
| `ex` | number | 否 | 0 | 裁剪区域右下角 x 坐标 |
|
|
197
|
+
| `ey` | number | 否 | 0 | 裁剪区域右下角 y 坐标 |
|
|
198
|
+
| `targetSize` | number | 否 | 224 | 分类输入大小,应与模型训练或导出时的输入尺寸一致 |
|
|
199
|
+
|
|
200
|
+
**返回值:**
|
|
201
|
+
|
|
202
|
+
| 类型 | 描述 |
|
|
203
|
+
| -------------- | --------------------------------------------------- |
|
|
204
|
+
| `YoloClsProbs` | Ultralytics `Probs` 风格分类结果,包含 top1/top5 等 |
|
|
205
|
+
|
|
206
|
+
**示例:**
|
|
207
|
+
|
|
208
|
+
```lua
|
|
209
|
+
local yoloCls = require("yoloCls")
|
|
210
|
+
local regionProbs = yoloCls.classifyRegion(
|
|
211
|
+
modelId,
|
|
212
|
+
"screen",
|
|
213
|
+
100,
|
|
214
|
+
100,
|
|
215
|
+
500,
|
|
216
|
+
400,
|
|
217
|
+
224
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
if regionProbs.top1 ~= nil then
|
|
221
|
+
print(
|
|
222
|
+
"区域分类 top1=" .. tostring(regionProbs.top1) .. ", 置信度=" .. tostring(regionProbs.top1conf.toFixed(4))
|
|
223
|
+
)
|
|
224
|
+
end
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 资源管理
|
|
228
|
+
|
|
229
|
+
#### free - 释放指定模型资源
|
|
230
|
+
|
|
231
|
+
释放指定分类模型占用的资源。
|
|
232
|
+
|
|
233
|
+
```lua
|
|
234
|
+
---@param modelId string
|
|
235
|
+
function free(modelId) end
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**参数:**
|
|
239
|
+
|
|
240
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
241
|
+
| --------- | ------ | -------- | ------ | --------------- |
|
|
242
|
+
| `modelId` | string | 是 | | 要释放的模型 ID |
|
|
243
|
+
|
|
244
|
+
**示例:**
|
|
245
|
+
|
|
246
|
+
```lua
|
|
247
|
+
local yoloCls = require("yoloCls")
|
|
248
|
+
if modelId then
|
|
249
|
+
yoloCls.free(modelId)
|
|
250
|
+
print("YOLO 分类模型 " .. tostring(modelId) .. " 资源已释放")
|
|
251
|
+
end
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### freeAll - 释放所有模型资源
|
|
255
|
+
|
|
256
|
+
释放所有已加载的 YOLO 分类模型资源。
|
|
257
|
+
|
|
258
|
+
```lua
|
|
259
|
+
function freeAll() end
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**示例:**
|
|
263
|
+
|
|
264
|
+
```lua
|
|
265
|
+
local yoloCls = require("yoloCls")
|
|
266
|
+
yoloCls.freeAll()
|
|
267
|
+
print("所有 YOLO 分类模型资源已释放")
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## 使用注意事项
|
|
271
|
+
|
|
272
|
+
- `targetSize` 默认值为 224,常见 YOLO-cls 模型使用该尺寸;自定义模型请填写训练或导出时使用的输入尺寸。
|
|
273
|
+
- `nc` 传 `0` 或省略时会根据模型输出自动推断类别数量;显式传入但和模型输出不匹配时返回空结果。
|
|
274
|
+
- `classifyRegion` 中 `x/y/ex/ey` 全部为 `0` 时表示不裁剪,直接对整张图分类。
|
|
275
|
+
- 裁剪区域必须位于图像范围内,并且 `ex > x`、`ey > y`。
|
|
276
|
+
- 分类结果中的类别 ID 需要结合训练时的类别列表解释;本模块只返回类别 ID 和概率。
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
- JavaScript 项目使用 JavaScript 文档与写法。
|
|
12
12
|
- Python 项目使用 Python 文档与写法。
|
|
13
|
-
-
|
|
13
|
+
- Lua 项目使用 Lua 文档与写法。
|
|
14
|
+
- 不要混用 JavaScript、Python 与 Lua API。
|
|
14
15
|
- 不要把快点JS Python 脚本当成普通 CPython 脚本。
|
|
15
16
|
- 不要对快点JS Python 脚本运行 `python -m py_compile`、`py_compile` 或类似 CPython 编译校验。
|
|
16
17
|
- 不要创建、保留或同步 `__pycache__`、`.pyc` 作为项目改动。
|
|
@@ -60,12 +61,12 @@ npx ms package
|
|
|
60
61
|
|
|
61
62
|
文档入口:
|
|
62
63
|
|
|
63
|
-
- MCP:使用 `get_docs_paths` 获取文档根目录、JS 文档目录、中文 JS 文档目录、Python 文档目录和 HTTP API 文档路径。
|
|
64
|
+
- MCP:使用 `get_docs_paths` 获取文档根目录、JS 文档目录、中文 JS 文档目录、Python 文档目录、Lua 文档目录和 HTTP API 文档路径。
|
|
64
65
|
- CLI:使用 `npx ms docs paths` 输出同一组文档路径。
|
|
65
66
|
|
|
66
67
|
读取规则:
|
|
67
68
|
|
|
68
|
-
1. 先根据项目语言选择 `docs/api`、`docs/apicn` 或 `docs/
|
|
69
|
+
1. 先根据项目语言选择 `docs/api`、`docs/apicn`、`docs/apipython` 或 `docs/apilua`。
|
|
69
70
|
2. 直接读取对应目录下的 markdown 文件。
|
|
70
71
|
3. 调用 HTTP API 前,直接读取 `docs/httpapi/api.md`。
|
|
71
72
|
4. 只依据已读取的本地文档内容回答或编写代码。
|
|
@@ -203,7 +204,7 @@ UI 预览发起后不需要长时间等待结果,可以通过 `take_screenshot
|
|
|
203
204
|
|
|
204
205
|
- 不要在没有读取本地文档的情况下回答 API 用法或编写 API 调用代码。
|
|
205
206
|
- 不要臆造快点JS API、对象、参数、返回值或运行机制。
|
|
206
|
-
- 不要混用 JavaScript 与
|
|
207
|
+
- 不要混用 JavaScript、Python 与 Lua API。
|
|
207
208
|
- 不要把快点JS当成普通 Node.js、浏览器或通用 Python 环境。
|
|
208
209
|
- 不要对快点JS Python 脚本运行 `py_compile` 或其他 CPython 编译校验。
|
|
209
210
|
- 不要在没有读取本地 HTTP API 文档的情况下调用 `http_api_call` 或 `ms http-call`。
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# 创建项目
|
|
2
|
+
|
|
3
|
+
**前置条件**
|
|
4
|
+
|
|
5
|
+
- 已安装 Visual Studio Code 和 快点 JS 开发工具插件
|
|
6
|
+
- 快点 JS 开发工具插件需要登录`快点JS 开发者账号`,才能创建项目,请点击顶部菜单`开发者后台`注册账号
|
|
7
|
+
- 快点 JS APP 也需要注册账号才能使用,注意`快点JS APP的账号`和 `快点JS 开发工具插件`的账号是不同的
|
|
8
|
+
- 快点 JS APP 需要从`快点JS APP` 上<span style="color: red;">注册账号</span>,注册完成后,需要登录`快点JS APP`,才能使用
|
|
9
|
+
|
|
10
|
+
## 创建项目
|
|
11
|
+
|
|
12
|
+
- 快点 JS 使用 `javascript`/`python`/`lua` 编写脚本,入口文件为 `main.js` 或 `main.py` 或 `main.lua`
|
|
13
|
+
|
|
14
|
+
- 在创建`快点JS`项目之前,请确保你拥有 js 基础,了解 js 的语法,才能正常使用`快点JS`
|
|
15
|
+
- 可以查找`快点JS`的文档,了解`快点JS`的语法,如[点此进入 JS 基础教程](../js-tutorial/introduction.md)
|
|
16
|
+
- 点击`创建快点JS项目`,如没有安装`快点JS开发工具插件`,是不会有这个按钮的
|
|
17
|
+
- 选择一个文件目录,输入项目名称,回车创建项目
|
|
18
|
+
- 快点 JS-JS 引擎使用 `ES6` 语法,支持 import 别的 js 文件
|
|
19
|
+
- 快点 JS-Python 引擎使用 `Python3.14`, 打包需要安装 `Python3.14`
|
|
20
|
+
- 快点 JS-Lua 引擎入口为 `scripts/main.lua`,模块通过 `require("device")` 加载,全局函数如 `Sleep` 可直接调用
|
|
21
|
+
- 项目创建完成后,会自动打开项目,项目结构如下:
|
|
22
|
+
|
|
23
|
+
### 项目结构
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
项目名称/
|
|
27
|
+
├─ scripts/ ← 脚本存放目录
|
|
28
|
+
│ └─ main.js ← JS引擎程序入口(文件名不可改变,仅js项目)
|
|
29
|
+
| └─ main.py ← Python程序入口(文件名不可改变,仅python项目)
|
|
30
|
+
| └─ main.lua ← Lua程序入口(文件名不可改变,仅lua项目)
|
|
31
|
+
├─ res/ ← 资源存放目录
|
|
32
|
+
├─ ui/ ← UI 界面存放目录
|
|
33
|
+
│ ├─ fonts/
|
|
34
|
+
│ ├─ htmljs/
|
|
35
|
+
│ └─ index.html
|
|
36
|
+
├─ .gitignore ← Git 忽略文件
|
|
37
|
+
├─ .npmrc ← npm 配置文件
|
|
38
|
+
├─ .prettierignore ← 代码格式化忽略文件(仅js项目)
|
|
39
|
+
├─ .prettierrc.yaml ← 代码格式化配置(需安装 Prettier 插件,仅js项目)
|
|
40
|
+
├─ obfuscator.json ← 代码混淆配置(javascript-obfuscator,仅js项目)
|
|
41
|
+
├─ package.json ← 项目依赖配置文件
|
|
42
|
+
└─ tsconfig.json ← TypeScript 配置文件(用于js提示和网页提示)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 创建项目
|
|
46
|
+
|
|
47
|
+
<img src="/img/Project/createProject.jpg" width="800" alt="创建项目">
|
|
48
|
+
|
|
49
|
+
### 项目类型
|
|
50
|
+
|
|
51
|
+
<img src="/img/Project/项目类型.jpg" width="800" alt="创建项目">
|
|
52
|
+
|
|
53
|
+
## 安装依赖
|
|
54
|
+
|
|
55
|
+
- 项目第一次创建打开时,可能会提示环境不满足,跟随提示自动配置环境,点击一键安装即可
|
|
56
|
+
|
|
57
|
+
<img src="/img/Project/installDeps.jpg" width="800" alt="安装依赖">
|
|
58
|
+
|
|
59
|
+
## 运行项目
|
|
60
|
+
|
|
61
|
+
**使用说明**
|
|
62
|
+
|
|
63
|
+
- 点击运行项目,会执行编译同步到设备上运行,同时运行会变成停止按钮
|
|
64
|
+
- 点击停止项目,会停止设备上运行的项目,如果项目没有写死循环,会自动退出
|
|
65
|
+
- 点击运行 UI,设备会打开项目的 UI 界面,打开配置的 html
|
|
66
|
+
- 点击图色按钮,会打开图色工具
|
|
67
|
+
- 点击节点查找按钮,会打开节点查找工具
|
|
68
|
+
- 点击实时画面,会打开手机实时画面
|
|
69
|
+
- 点击打包,会打包项目为msbundle脚本包,打包完成后,会在项目目录下生成msbundle文件
|
|
70
|
+
|
|
71
|
+
**注意事项**
|
|
72
|
+
|
|
73
|
+
- 当你的 VisualStudioCode 安装其他的插件时,编辑器右侧顶部工具栏,可能图标不显示,因为被其他插件占用了
|
|
74
|
+
- 你可以通过编辑器右键菜单->`快点JS`->的下级菜单,来使用所有功能
|
|
75
|
+
|
|
76
|
+
<img src="/img/Project/devloper.png" width="800" alt="运行项目">
|
|
77
|
+
|
|
78
|
+
## 常见问题
|
|
79
|
+
|
|
80
|
+
### 无法显示`debug`或`warn`级别的日志
|
|
81
|
+
|
|
82
|
+
- VisualStudioCode 日志控制台默认是信息也就是 INFO 请设置为跟踪,并点击设置为默认值,否则可能看不到 `debug` 或 `warn` 级别的日志
|
|
83
|
+
|
|
84
|
+
<img src="/img/Project/log.png" width="800" alt="日志控制台">
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 打包脚本包
|
|
2
|
+
|
|
3
|
+
**前置条件**
|
|
4
|
+
|
|
5
|
+
- 需要在项目配置 `AppId` 字段
|
|
6
|
+
- `AppId` 从开发者后台->网络验证管理->软件列表 中获取
|
|
7
|
+
|
|
8
|
+
**操作步骤**
|
|
9
|
+
|
|
10
|
+
- 打开主脚本 `main.js | main.py | main.lua`,右键编辑器,选择 `快点JS` -> `打包应用`
|
|
11
|
+
- 输入在开发者后台->网络验证管理->软件列表 中获取的 `AppId` 字段
|
|
12
|
+
- 注意:上传到快点JS热更新服务后,可通过开发者后台->网络验证管理->软件列表的软件编号进行分发
|
|
13
|
+
- 注意:快点JS上可通过软件面板,输入软件编号进行搜索加载应用
|
|
14
|
+
|
|
15
|
+
<img src="/img/PackProject/打包菜单.png" width="800" alt="打包菜单">
|
|
16
|
+
|
|
17
|
+
<img src="/img/PackProject/packageIPA.png" width="800" alt="打包IPA">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ms-vite-plugin",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.51",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@gamely/prometheus-cli": "^0.0.9",
|
|
24
25
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
25
26
|
"acorn": "8.15.0",
|
|
26
27
|
"archiver": "^7.0.1",
|