@deveco-test/deveco-cli 0.6.1 → 0.8.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.
- package/LICENSE +21 -21
- package/README.md +507 -507
- package/SKILL.md +116 -116
- package/THIRD-PARTY-LICENSES +3536 -3503
- package/dist/cli.js +60 -60
- package/package.json +2 -1
- package/templates/application/AppScope/app.json5 +10 -10
- package/templates/application/AppScope/resources/base/element/string.json +8 -8
- package/templates/application/AppScope/resources/base/media/layered_image.json +6 -6
- package/templates/application/build-profile.json5 +41 -41
- package/templates/application/code-linter.json5 +31 -31
- package/templates/application/entry/build-profile.json5 +32 -32
- package/templates/application/entry/hvigorfile.ts +7 -7
- package/templates/application/entry/obfuscation-rules.txt +19 -19
- package/templates/application/entry/oh-package.json5 +10 -10
- package/templates/application/entry/src/main/ets/entryability/EntryAbility.ets +62 -62
- package/templates/application/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets +30 -30
- package/templates/application/entry/src/main/ets/pages/Index.ets +37 -37
- package/templates/application/entry/src/main/module.json5 +49 -49
- package/templates/application/entry/src/main/resources/base/element/color.json +7 -7
- package/templates/application/entry/src/main/resources/base/element/float.json +8 -8
- package/templates/application/entry/src/main/resources/base/element/string.json +15 -15
- package/templates/application/entry/src/main/resources/base/media/layered_image.json +6 -6
- package/templates/application/entry/src/main/resources/base/profile/backup_config.json +2 -2
- package/templates/application/entry/src/main/resources/base/profile/main_pages.json +5 -5
- package/templates/application/entry/src/main/resources/dark/element/color.json +7 -7
- package/templates/application/hvigor/hvigor-config.json5 +23 -23
- package/templates/application/hvigorfile.ts +7 -7
- package/templates/application/oh-package.json5 +10 -10
package/README.md
CHANGED
|
@@ -1,507 +1,507 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<h1>DevEco CLI</h1>
|
|
3
|
-
<p>一个面向 HarmonyOS 应用开发的统一命令行入口。</p>
|
|
4
|
-
<p>
|
|
5
|
-
<a href="https://www.npmjs.com/package/@deveco-test/deveco-cli"><img src="https://img.shields.io/npm/v/@deveco-test/deveco-cli.svg" alt="NPM Version" /></a>
|
|
6
|
-
<a href="https://www.npmjs.com/package/@deveco-test/deveco-cli"><img src="https://img.shields.io/npm/dm/@deveco-test/deveco-cli.svg" alt="NPM Downloads" /></a>
|
|
7
|
-
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-%3E%3D18-green.svg" alt="Node.js" /></a>
|
|
8
|
-
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue.svg" alt="Platform" />
|
|
9
|
-
<a href="https://developer.huawei.com/consumer/cn/download/"><img src="https://img.shields.io/badge/DevEco%20Studio-%3E%3D6.1.0-orange.svg" alt="DevEco Studio" /></a>
|
|
10
|
-
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /></a>
|
|
11
|
-
</p>
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
`devecocli` 将 DevEco Studio 工具链统一封装为一个 CLI,内置 `ohpm`、`hvigor`、`hdc`、`emulator`、`hilog`,同时集成
|
|
15
|
-
|
|
16
|
-
通过单一命令行工具即可完成创建、构建、安装、运行、日志查看、文档检索与 AI Agent 集成等开发流程,无需手动配置 `PATH`、`DEVECO_SDK_HOME` 或 `JAVA_HOME`。
|
|
17
|
-
|
|
18
|
-
## 为什么用它
|
|
19
|
-
|
|
20
|
-
- 一条命令完成 `create`、`build`、`run`、`log` 等常见开发流程
|
|
21
|
-
- 自动复用 DevEco Studio 自带工具链,减少本地环境配置成本
|
|
22
|
-
- 同时支持真机、模拟器、日志诊断和本地文档检索
|
|
23
|
-
- 支持给 `opencode`、`cursor`、`trae-cn` 等 AI Agent 注入技能和 MCP 配置
|
|
24
|
-
- 面向 CLI 工作流,也适合作为自动化脚本和 Agent 的底层能力
|
|
25
|
-
|
|
26
|
-
## 快速开始
|
|
27
|
-
|
|
28
|
-
### 前置要求
|
|
29
|
-
|
|
30
|
-
- Node.js >= 18
|
|
31
|
-
- [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) >= 6.1.0
|
|
32
|
-
- 操作系统为 macOS 或 Windows
|
|
33
|
-
|
|
34
|
-
### 安装
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
npm install -g @deveco-test/deveco-cli@latest
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
安装后可以通过以下命令更新到最新版本:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
devecocli update
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 最短工作流
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
devecocli create --app-name MyApp
|
|
50
|
-
cd MyApp
|
|
51
|
-
devecocli run
|
|
52
|
-
devecocli log --level E
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 文档检索
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
devecocli docs search List
|
|
59
|
-
devecocli docs read harmonyos-guides/application-models/arkts-page-start-overview
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
更多命令和参数可通过 `devecocli --help` 或各子命令的 `--help` 查看。
|
|
63
|
-
|
|
64
|
-
## AI Agent 集成
|
|
65
|
-
|
|
66
|
-
`devecocli` 支持接入 `opencode`、`cursor`、`trae-cn` 等 AI Agent。下面以 `opencode` 为例展示最短流程:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# 1. 给 opencode 安装 deveco-cli 技能
|
|
70
|
-
devecocli init --agent opencode
|
|
71
|
-
|
|
72
|
-
# 2. 给 opencode 在当前 HarmonyOS 项目配置 MCP
|
|
73
|
-
devecocli init --mcp --agent opencode --project ./MyApp
|
|
74
|
-
|
|
75
|
-
# 3. 进入项目并启动 opencode
|
|
76
|
-
cd MyApp
|
|
77
|
-
opencode
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
进入 Agent 后可以直接描述任务,例如:
|
|
81
|
-
|
|
82
|
-
- `Build this project in release mode and run it on my emulator`
|
|
83
|
-
- `Tail the last error logs from this app`
|
|
84
|
-
- `Check for syntax errors in src/main/ets/pages/Index.ets`
|
|
85
|
-
|
|
86
|
-
## 常用命令
|
|
87
|
-
|
|
88
|
-
| 命令 | 用途 |
|
|
89
|
-
| ------------------------- | ----------------------------------------- |
|
|
90
|
-
| `devecocli create` | 创建新的 HarmonyOS 项目 |
|
|
91
|
-
| `devecocli build` | 构建项目并产出 `.hap` / `.hsp` / `.har` / `.app` |
|
|
92
|
-
| `devecocli run` | 安装并运行应用 |
|
|
93
|
-
| `devecocli device list` | 查看当前连接设备 |
|
|
94
|
-
| `devecocli emulator list` | 查看本地模拟器实例 |
|
|
95
|
-
| `devecocli log` | 查看 `hilog` 或崩溃日志 |
|
|
96
|
-
| `devecocli docs search` | 搜索本地 HarmonyOS 文档 |
|
|
97
|
-
| `devecocli init` | 安装内置技能或配置 MCP |
|
|
98
|
-
| `devecocli skills` | 管理
|
|
99
|
-
|
|
100
|
-
## 详细使用指南
|
|
101
|
-
|
|
102
|
-
下面按使用场景保留完整的折叠式参数说明。
|
|
103
|
-
|
|
104
|
-
<details>
|
|
105
|
-
<summary><b>安装与要求</b></summary>
|
|
106
|
-
|
|
107
|
-
### 前置要求
|
|
108
|
-
|
|
109
|
-
- **DevEco Studio**:需已安装 DevEco Studio 6.1.0 或更高版本。
|
|
110
|
-
- **Windows**:必须是安装版本,不支持便携版或解压版。默认安装路径为 `C:\Program Files\Huawei\DevEco Studio`。
|
|
111
|
-
- **macOS**:必须安装在 `~/Applications` 或 `/Applications` 目录下,名称中包含 `deveco` 的 `.app` 即可被识别。
|
|
112
|
-
- **Node.js**:运行时要求 Node.js 18 或更高版本。
|
|
113
|
-
|
|
114
|
-
### 安装版本说明
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
npm install -g @deveco-test/deveco-cli@latest
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
</details>
|
|
121
|
-
|
|
122
|
-
<details>
|
|
123
|
-
<summary><b>命令概览</b></summary>
|
|
124
|
-
|
|
125
|
-
```text
|
|
126
|
-
Usage: devecocli [options] [command]
|
|
127
|
-
|
|
128
|
-
HarmonyOS application development command line tool
|
|
129
|
-
|
|
130
|
-
Options:
|
|
131
|
-
-V, --version output the version number
|
|
132
|
-
-h, --help display help for command
|
|
133
|
-
|
|
134
|
-
Commands:
|
|
135
|
-
build [options] Build the HarmonyOS project
|
|
136
|
-
run [options] Build and run the project on a connected device
|
|
137
|
-
update Update deveco-cli to the latest version
|
|
138
|
-
device Manage connected devices
|
|
139
|
-
emulator Manage emulator instances
|
|
140
|
-
skills Manage
|
|
141
|
-
log [options] Obtain device application logs
|
|
142
|
-
create [options] Scaffold a new HarmonyOS application project
|
|
143
|
-
init [options] Install the deveco-cli skill or configure the deveco-mcp server into AI agents
|
|
144
|
-
serve Host bundled auxiliary protocol servers
|
|
145
|
-
docs [options] Search and read
|
|
146
|
-
help [command] display help for command
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
| 类别 | 命令 | 主要子命令 | 用途 |
|
|
150
|
-
| ----- | ---------- | --------------------------------------------------------------------- | --------------------------------------- |
|
|
151
|
-
| 项目脚手架 | `create` | - | 基于内置模板初始化新工程 |
|
|
152
|
-
| 构建打包 | `build` | `clean` | 编译并产出 `.hap` / `.hsp` / `.har` / `.app` |
|
|
153
|
-
| 部署运行 | `run` | - | 安装并启动应用 |
|
|
154
|
-
| 设备管理 | `device` | `list` / `view` | 查看当前连接设备与详情 |
|
|
155
|
-
| 模拟器 | `emulator` | `list` / `start` / `stop` / `create` / `delete` / `image` / `license` | 管理本地模拟器实例与系统镜像 |
|
|
156
|
-
| 日志诊断 | `log` | - | 获取 `hilog` 与崩溃日志 |
|
|
157
|
-
| 文档检索 | `docs` | `search` / `read` / `catalog` | 检索本地
|
|
158
|
-
| 技能初始化 | `init` | - | 安装内置 `deveco-cli` 技能或配置 `deveco-mcp` |
|
|
159
|
-
| 技能管理 | `skills` | `list` / `find` / `add` / `remove` | 管理
|
|
160
|
-
| 辅助服务 | `serve` | `mcp` | 启动内置辅助服务 |
|
|
161
|
-
| 自更新 | `update` | - | 升级到最新版本 |
|
|
162
|
-
|
|
163
|
-
</details>
|
|
164
|
-
|
|
165
|
-
<details>
|
|
166
|
-
<summary><b>创建项目</b></summary>
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
devecocli create --project-path ./MyApp --app-name MyApp
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
| 参数 | 说明 | 默认值 |
|
|
173
|
-
| ------------------------ | ------------------------------ | ------------------------ |
|
|
174
|
-
| `--project-path <path>` | 项目目录路径 | `./<app-name>` |
|
|
175
|
-
| `--app-name <name>` | 应用名称,必填;以字母开头,仅含字母、数字、下划线 | - |
|
|
176
|
-
| `--bundle-name <bundle>` | Bundle Name,默认根据 `app-name` 生成 | `com.example.<app-name>` |
|
|
177
|
-
| `--api-level <level>` | API 级别(`>=17`),自动探测 SDK 版本 | 无 IDE 时默认 `23` |
|
|
178
|
-
|
|
179
|
-
</details>
|
|
180
|
-
|
|
181
|
-
<details>
|
|
182
|
-
<summary><b>构建与运行</b></summary>
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# 构建项目
|
|
186
|
-
devecocli build
|
|
187
|
-
|
|
188
|
-
# 构建指定模块
|
|
189
|
-
devecocli build --modules entry library
|
|
190
|
-
|
|
191
|
-
# 构建 release 版本
|
|
192
|
-
devecocli build --build-mode release
|
|
193
|
-
|
|
194
|
-
# 构建并运行
|
|
195
|
-
devecocli run
|
|
196
|
-
|
|
197
|
-
# 运行到指定设备
|
|
198
|
-
devecocli run --device 127.0.0.1:5555
|
|
199
|
-
|
|
200
|
-
# 清理构建产物并停止 daemon
|
|
201
|
-
devecocli build clean
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### `build` 参数
|
|
205
|
-
|
|
206
|
-
| 参数 | 说明 | 默认值 |
|
|
207
|
-
| ------------------------ | ----------------------------------- | -------------------- |
|
|
208
|
-
| `--product <product>` | Product 名称;仅指定该参数时构建整个 product | `default` |
|
|
209
|
-
| `--modules <modules...>` | 指定模块,格式为 `module` 或 `module@target` | 单入口模块时自动检测;多入口时需显式指定 |
|
|
210
|
-
| `--build-mode <mode>` | 构建模式(`debug` / `release` 等) | `debug` |
|
|
211
|
-
|
|
212
|
-
### `run` 参数
|
|
213
|
-
|
|
214
|
-
| 参数 | 说明 | 默认值 |
|
|
215
|
-
| --------------------- | ------------------------------------- | ------------------------------------ |
|
|
216
|
-
| `--module <module>` | 要运行的模块,格式为 `module` 或 `module@target` | 单个可运行模块时自动检测 |
|
|
217
|
-
| `--device <device>` | 目标设备,支持设备名称或序列号 | 单设备时自动检测 |
|
|
218
|
-
| `--product <product>` | Product 名称 | `default` |
|
|
219
|
-
| `--build-mode <mode>` | 构建模式 | `debug` |
|
|
220
|
-
| `--ability <ability>` | 要启动的 Ability | 优先 `EntryAbility`,否则取模块中的第一个 Ability |
|
|
221
|
-
| `--uninstall` | 安装前先卸载已有应用 | - |
|
|
222
|
-
| `--skip-build` | 跳过构建步骤,直接部署已有产物 | - |
|
|
223
|
-
|
|
224
|
-
</details>
|
|
225
|
-
|
|
226
|
-
<details>
|
|
227
|
-
<summary><b>设备与模拟器</b></summary>
|
|
228
|
-
|
|
229
|
-
### 设备管理
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
# 列出已连接设备
|
|
233
|
-
devecocli device list
|
|
234
|
-
|
|
235
|
-
# 查看设备详情
|
|
236
|
-
devecocli device view
|
|
237
|
-
devecocli device view -t 127.0.0.1:5555
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
`device view` 参数:
|
|
241
|
-
|
|
242
|
-
- `-t, --target <serialOrName>`:目标设备,多设备时必填。
|
|
243
|
-
|
|
244
|
-
> `run`、`log` 等命令中的 `--device` 同时支持设备名称模糊匹配和序列号精确匹配。
|
|
245
|
-
|
|
246
|
-
### 模拟器管理
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
# 列出所有模拟器
|
|
250
|
-
devecocli emulator list
|
|
251
|
-
|
|
252
|
-
# 启动模拟器
|
|
253
|
-
devecocli emulator start HarmonyOS_Phone
|
|
254
|
-
|
|
255
|
-
# 停止模拟器
|
|
256
|
-
devecocli emulator stop HarmonyOS_Phone
|
|
257
|
-
|
|
258
|
-
# 创建模拟器
|
|
259
|
-
devecocli emulator create MyPhone --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
260
|
-
|
|
261
|
-
# 删除模拟器
|
|
262
|
-
devecocli emulator delete MyPhone
|
|
263
|
-
|
|
264
|
-
# 系统镜像管理
|
|
265
|
-
devecocli emulator image list
|
|
266
|
-
devecocli emulator image download --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
267
|
-
devecocli emulator image remove --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
268
|
-
|
|
269
|
-
# 许可协议
|
|
270
|
-
devecocli emulator license view
|
|
271
|
-
devecocli emulator license accept
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
> `emulator start` 和 `emulator image download` 执行前会自动检查许可协议状态,未接受时将提示先运行 `emulator license accept`。
|
|
275
|
-
|
|
276
|
-
**设备类型:** `phone`、`foldable`、`widefold`、`triplefold`、`tablet`、`2in1`、`2in1 foldable`、`wearable`、`tv`
|
|
277
|
-
|
|
278
|
-
### `emulator create` 参数
|
|
279
|
-
|
|
280
|
-
| 参数 | 说明 | 默认值 |
|
|
281
|
-
| ------------------------ | ------------------------------------- | --- |
|
|
282
|
-
| `<name>` | 模拟器名称,仅含字母、空格、数字、下划线 | - |
|
|
283
|
-
| `--device-type <type>` | 设备类型,必填 | - |
|
|
284
|
-
| `--os-version <version>` | 已下载的系统镜像版本,必填,须与 `image list` 中的值完全一致 | - |
|
|
285
|
-
| `--force` | 覆盖已有实例 | - |
|
|
286
|
-
|
|
287
|
-
### `emulator image list` 参数
|
|
288
|
-
|
|
289
|
-
| 参数 | 说明 | 默认值 |
|
|
290
|
-
| ---------------------- | ---------------------- | ------- |
|
|
291
|
-
| `--device-type <type>` | 按设备类型筛选 | 全部 |
|
|
292
|
-
| `--all` | 列出所有镜像(已下载 + 未下载) | 仅已下载 |
|
|
293
|
-
| `--format <format>` | 输出格式(`table` / `json`) | `table` |
|
|
294
|
-
|
|
295
|
-
### `emulator image download` 参数
|
|
296
|
-
|
|
297
|
-
| 参数 | 说明 | 默认值 |
|
|
298
|
-
| ------------------------ | ------------------------------------ | --- |
|
|
299
|
-
| `--device-type <type>` | 设备类型,必填 | - |
|
|
300
|
-
| `--os-version <version>` | 系统镜像版本,必填,例如 `"HarmonyOS 6.0.1(21)"` | - |
|
|
301
|
-
| `--force` | 覆盖已存在的镜像 | - |
|
|
302
|
-
|
|
303
|
-
### `emulator image remove` 参数
|
|
304
|
-
|
|
305
|
-
| 参数 | 说明 | 默认值 |
|
|
306
|
-
| ------------------------ | ----------------------------------- | --- |
|
|
307
|
-
| `--device-type <type>` | 设备类型,必填 | - |
|
|
308
|
-
| `--os-version <version>` | 系统镜像版本,必填,支持镜像标签和 `softwareVersion` | - |
|
|
309
|
-
|
|
310
|
-
</details>
|
|
311
|
-
|
|
312
|
-
<details>
|
|
313
|
-
<summary><b>日志与文档检索</b></summary>
|
|
314
|
-
|
|
315
|
-
### 日志诊断
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
# 获取日志
|
|
319
|
-
devecocli log
|
|
320
|
-
|
|
321
|
-
# 按级别过滤
|
|
322
|
-
devecocli log --level E
|
|
323
|
-
|
|
324
|
-
# 按应用过滤
|
|
325
|
-
devecocli log --bundle-name com.example.app
|
|
326
|
-
|
|
327
|
-
# 崩溃日志
|
|
328
|
-
devecocli log --crash
|
|
329
|
-
|
|
330
|
-
# 实时日志
|
|
331
|
-
devecocli log --follow
|
|
332
|
-
|
|
333
|
-
# 时间窗口
|
|
334
|
-
devecocli log --from 5m --tail 100
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
| 参数 | 说明 | 默认值 |
|
|
338
|
-
| ----------------------------- | --------------------------------- | -------- |
|
|
339
|
-
| `--device <device>` | 目标设备,支持设备名称或序列号 | 单设备时自动检测 |
|
|
340
|
-
| `--crash` | 崩溃日志模式 | - |
|
|
341
|
-
| `--level <level>` | 日志级别(`D` / `I` / `W` / `E` / `F`) | - |
|
|
342
|
-
| `--bundle-name <bundle-name>` | 按 Bundle Name 过滤 | - |
|
|
343
|
-
| `--keyword <keyword>` | 关键词过滤 | - |
|
|
344
|
-
| `--tail <num>` | 只显示最新 N 行 | - |
|
|
345
|
-
| `--from <start>` | 起始偏移(如 `30s`、`5m`、`2.5m`) | - |
|
|
346
|
-
| `--to <end>` | 结束偏移(格式同 `--from`) | - |
|
|
347
|
-
| `--follow` | 实时跟随,不可与 `--to` 同时使用 | - |
|
|
348
|
-
|
|
349
|
-
### 本地文档检索
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
# 搜索文档
|
|
353
|
-
devecocli docs search ArkTS Row layout
|
|
354
|
-
|
|
355
|
-
# 指定目录搜索
|
|
356
|
-
devecocli docs search @State @Prop --catalog harmonyos-guides --limit 10
|
|
357
|
-
|
|
358
|
-
# 阅读文档
|
|
359
|
-
devecocli docs read harmonyos-guides/application-models/arkts-page-start-overview
|
|
360
|
-
|
|
361
|
-
# 列出所有目录
|
|
362
|
-
devecocli docs catalog
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
参数说明:
|
|
366
|
-
|
|
367
|
-
- `search <keywords...>`:关键词搜索,支持多个关键词,采用 OR 逻辑,最多 10 个关键词。
|
|
368
|
-
- `--catalog <name>`:指定目录,默认 `all`。
|
|
369
|
-
- `--format <default|json>`:输出格式,默认 `default`。
|
|
370
|
-
- `--limit <n>`:最大结果数,默认 `20`。
|
|
371
|
-
- `read <documentId>`:根据文档 ID 阅读完整内容。
|
|
372
|
-
- `catalog`:列出所有可用目录。
|
|
373
|
-
|
|
374
|
-
</details>
|
|
375
|
-
|
|
376
|
-
<details>
|
|
377
|
-
<summary><b>AI Agent、技能与 MCP</b></summary>
|
|
378
|
-
|
|
379
|
-
### 什么时候用 `init`、`skills`、`serve`
|
|
380
|
-
|
|
381
|
-
- `init`:推荐新用户使用,用于安装内置 `deveco-cli` 技能或配置 `deveco-mcp`
|
|
382
|
-
- `skills`:用于管理
|
|
383
|
-
- `serve`:用于启动内置辅助服务,当前仅有 `serve mcp`
|
|
384
|
-
|
|
385
|
-
### `init`
|
|
386
|
-
|
|
387
|
-
```bash
|
|
388
|
-
# 安装技能到所有检测到的 AI Agent
|
|
389
|
-
devecocli init
|
|
390
|
-
|
|
391
|
-
# 仅安装技能到指定 Agent
|
|
392
|
-
devecocli init --skill --agent opencode
|
|
393
|
-
|
|
394
|
-
# 已安装过时强制更新技能
|
|
395
|
-
devecocli init -f
|
|
396
|
-
|
|
397
|
-
# 配置全局 MCP 服务器
|
|
398
|
-
devecocli init --mcp
|
|
399
|
-
|
|
400
|
-
# 为指定 Agent 配置项目级 MCP 服务器
|
|
401
|
-
devecocli init --mcp --agent opencode --project ./my-app
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
| 参数 | 说明 | 默认值 |
|
|
405
|
-
| ------------------ | ------------------------------ | ------------- |
|
|
406
|
-
| `--agent <agents>` | 目标 Agent(逗号分隔) | 所有已检测到的 Agent |
|
|
407
|
-
| `--project <path>` | 安装到项目目录 | - |
|
|
408
|
-
| `--path <path>` | 直接安装到指定路径 | - |
|
|
409
|
-
| `--skill` | 仅安装内置 `deveco-cli` 技能 | 默认行为 |
|
|
410
|
-
| `--mcp` | 仅配置 `deveco-mcp` MCP 服务器,不安装技能 | - |
|
|
411
|
-
| `-f, --force` | 强制覆盖已有配置 | - |
|
|
412
|
-
|
|
413
|
-
### `skills`
|
|
414
|
-
|
|
415
|
-
```bash
|
|
416
|
-
# 列出技能列表
|
|
417
|
-
devecocli skills list --long
|
|
418
|
-
|
|
419
|
-
# 搜索技能
|
|
420
|
-
devecocli skills find harmony
|
|
421
|
-
|
|
422
|
-
# 安装所有技能
|
|
423
|
-
devecocli skills add --all
|
|
424
|
-
|
|
425
|
-
# 安装指定技能
|
|
426
|
-
devecocli skills add --skill deveco-cli --agent cursor
|
|
427
|
-
|
|
428
|
-
# 移除技能
|
|
429
|
-
devecocli skills remove --skill deveco-cli
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
### `serve mcp`
|
|
433
|
-
|
|
434
|
-
```bash
|
|
435
|
-
devecocli serve mcp
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
`serve` 当前仅提供 `mcp` 子命令,用于以本地 `stdio` 模式启动 MCP 服务器,为 ArkTS 和 C/C++ 提供语法检查能力。
|
|
439
|
-
|
|
440
|
-
</details>
|
|
441
|
-
|
|
442
|
-
<details>
|
|
443
|
-
<summary><b>调试与常见问题</b></summary>
|
|
444
|
-
|
|
445
|
-
### 查看底层命令调用
|
|
446
|
-
|
|
447
|
-
如需打印底层 `ohpm`、`hvigor`、`hdc`、`emulator` 等实际执行命令,可设置:
|
|
448
|
-
|
|
449
|
-
```bash
|
|
450
|
-
DEVECO_CLI_DEBUG=1 devecocli build
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
### 常见问题
|
|
454
|
-
|
|
455
|
-
**Q: CLI 报错找不到 DevEco Studio?**
|
|
456
|
-
|
|
457
|
-
A: 确保已安装 DevEco Studio 6.1.0 或更高版本。CLI 会按以下顺序探测:
|
|
458
|
-
|
|
459
|
-
- **Windows**:注册表 -> `C:\Program Files\Huawei\DevEco Studio`
|
|
460
|
-
- **macOS**:`~/Applications` -> `/Applications`
|
|
461
|
-
|
|
462
|
-
**Q: 多设备环境下如何选择目标设备?**
|
|
463
|
-
|
|
464
|
-
A: 使用 `--device` 指定设备名或序列号:
|
|
465
|
-
|
|
466
|
-
```bash
|
|
467
|
-
devecocli run --device "My Phone"
|
|
468
|
-
devecocli run --device 127.0.0.1:5555
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
**Q: 模拟器启动或下载镜像时被许可协议阻塞?**
|
|
472
|
-
|
|
473
|
-
A: 需要在本地交互终端运行:
|
|
474
|
-
|
|
475
|
-
```bash
|
|
476
|
-
devecocli emulator license accept
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
确认 `y` 或 `yes` 后重试。AI Agent 无法替用户完成该交互步骤。
|
|
480
|
-
|
|
481
|
-
**Q: 安装应用时提示** **`install sign info inconsistent`?**
|
|
482
|
-
|
|
483
|
-
A: 使用 `--uninstall` 先卸载旧版本:
|
|
484
|
-
|
|
485
|
-
```bash
|
|
486
|
-
devecocli run --uninstall
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
</details>
|
|
490
|
-
|
|
491
|
-
## 开发
|
|
492
|
-
|
|
493
|
-
```bash
|
|
494
|
-
npm install
|
|
495
|
-
npm run dev
|
|
496
|
-
npm start -- <command>
|
|
497
|
-
npm run lint
|
|
498
|
-
npm run format
|
|
499
|
-
npm run build
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
- 架构与目录说明见 [`AGENTS.md`](./AGENTS.md)
|
|
503
|
-
- 如需参与维护,建议先阅读 `AGENTS.md` 中的约定与架构说明
|
|
504
|
-
|
|
505
|
-
## 许可证
|
|
506
|
-
|
|
507
|
-
[MIT](./LICENSE)
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>DevEco CLI</h1>
|
|
3
|
+
<p>一个面向 HarmonyOS 应用开发的统一命令行入口。</p>
|
|
4
|
+
<p>
|
|
5
|
+
<a href="https://www.npmjs.com/package/@deveco-test/deveco-cli"><img src="https://img.shields.io/npm/v/@deveco-test/deveco-cli.svg" alt="NPM Version" /></a>
|
|
6
|
+
<a href="https://www.npmjs.com/package/@deveco-test/deveco-cli"><img src="https://img.shields.io/npm/dm/@deveco-test/deveco-cli.svg" alt="NPM Downloads" /></a>
|
|
7
|
+
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-%3E%3D18-green.svg" alt="Node.js" /></a>
|
|
8
|
+
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue.svg" alt="Platform" />
|
|
9
|
+
<a href="https://developer.huawei.com/consumer/cn/download/"><img src="https://img.shields.io/badge/DevEco%20Studio-%3E%3D6.1.0-orange.svg" alt="DevEco Studio" /></a>
|
|
10
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /></a>
|
|
11
|
+
</p>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
`devecocli` 将 DevEco Studio 工具链统一封装为一个 CLI,内置 `ohpm`、`hvigor`、`hdc`、`emulator`、`hilog`,同时集成 HarmonyOS 技能安装、项目脚手架、本地 HarmonyOS 文档检索和 MCP 服务。
|
|
15
|
+
|
|
16
|
+
通过单一命令行工具即可完成创建、构建、安装、运行、日志查看、文档检索与 AI Agent 集成等开发流程,无需手动配置 `PATH`、`DEVECO_SDK_HOME` 或 `JAVA_HOME`。
|
|
17
|
+
|
|
18
|
+
## 为什么用它
|
|
19
|
+
|
|
20
|
+
- 一条命令完成 `create`、`build`、`run`、`log` 等常见开发流程
|
|
21
|
+
- 自动复用 DevEco Studio 自带工具链,减少本地环境配置成本
|
|
22
|
+
- 同时支持真机、模拟器、日志诊断和本地文档检索
|
|
23
|
+
- 支持给 `opencode`、`cursor`、`trae-cn` 等 AI Agent 注入技能和 MCP 配置
|
|
24
|
+
- 面向 CLI 工作流,也适合作为自动化脚本和 Agent 的底层能力
|
|
25
|
+
|
|
26
|
+
## 快速开始
|
|
27
|
+
|
|
28
|
+
### 前置要求
|
|
29
|
+
|
|
30
|
+
- Node.js >= 18
|
|
31
|
+
- [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) >= 6.1.0
|
|
32
|
+
- 操作系统为 macOS 或 Windows
|
|
33
|
+
|
|
34
|
+
### 安装
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g @deveco-test/deveco-cli@latest
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
安装后可以通过以下命令更新到最新版本:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
devecocli update
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 最短工作流
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
devecocli create --app-name MyApp
|
|
50
|
+
cd MyApp
|
|
51
|
+
devecocli run
|
|
52
|
+
devecocli log --level E
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 文档检索
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
devecocli docs search List
|
|
59
|
+
devecocli docs read harmonyos-guides/application-models/arkts-page-start-overview
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
更多命令和参数可通过 `devecocli --help` 或各子命令的 `--help` 查看。
|
|
63
|
+
|
|
64
|
+
## AI Agent 集成
|
|
65
|
+
|
|
66
|
+
`devecocli` 支持接入 `opencode`、`cursor`、`trae-cn` 等 AI Agent。下面以 `opencode` 为例展示最短流程:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 1. 给 opencode 安装 deveco-cli 技能
|
|
70
|
+
devecocli init --agent opencode
|
|
71
|
+
|
|
72
|
+
# 2. 给 opencode 在当前 HarmonyOS 项目配置 MCP
|
|
73
|
+
devecocli init --mcp --agent opencode --project ./MyApp
|
|
74
|
+
|
|
75
|
+
# 3. 进入项目并启动 opencode
|
|
76
|
+
cd MyApp
|
|
77
|
+
opencode
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
进入 Agent 后可以直接描述任务,例如:
|
|
81
|
+
|
|
82
|
+
- `Build this project in release mode and run it on my emulator`
|
|
83
|
+
- `Tail the last error logs from this app`
|
|
84
|
+
- `Check for syntax errors in src/main/ets/pages/Index.ets`
|
|
85
|
+
|
|
86
|
+
## 常用命令
|
|
87
|
+
|
|
88
|
+
| 命令 | 用途 |
|
|
89
|
+
| ------------------------- | ----------------------------------------- |
|
|
90
|
+
| `devecocli create` | 创建新的 HarmonyOS 项目 |
|
|
91
|
+
| `devecocli build` | 构建项目并产出 `.hap` / `.hsp` / `.har` / `.app` |
|
|
92
|
+
| `devecocli run` | 安装并运行应用 |
|
|
93
|
+
| `devecocli device list` | 查看当前连接设备 |
|
|
94
|
+
| `devecocli emulator list` | 查看本地模拟器实例 |
|
|
95
|
+
| `devecocli log` | 查看 `hilog` 或崩溃日志 |
|
|
96
|
+
| `devecocli docs search` | 搜索本地 HarmonyOS 文档 |
|
|
97
|
+
| `devecocli init` | 安装内置技能或配置 MCP |
|
|
98
|
+
| `devecocli skills` | 管理 HarmonyOS 技能市场中的技能 |
|
|
99
|
+
|
|
100
|
+
## 详细使用指南
|
|
101
|
+
|
|
102
|
+
下面按使用场景保留完整的折叠式参数说明。
|
|
103
|
+
|
|
104
|
+
<details>
|
|
105
|
+
<summary><b>安装与要求</b></summary>
|
|
106
|
+
|
|
107
|
+
### 前置要求
|
|
108
|
+
|
|
109
|
+
- **DevEco Studio**:需已安装 DevEco Studio 6.1.0 或更高版本。
|
|
110
|
+
- **Windows**:必须是安装版本,不支持便携版或解压版。默认安装路径为 `C:\Program Files\Huawei\DevEco Studio`。
|
|
111
|
+
- **macOS**:必须安装在 `~/Applications` 或 `/Applications` 目录下,名称中包含 `deveco` 的 `.app` 即可被识别。
|
|
112
|
+
- **Node.js**:运行时要求 Node.js 18 或更高版本。
|
|
113
|
+
|
|
114
|
+
### 安装版本说明
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm install -g @deveco-test/deveco-cli@latest
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
</details>
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary><b>命令概览</b></summary>
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
Usage: devecocli [options] [command]
|
|
127
|
+
|
|
128
|
+
HarmonyOS application development command line tool
|
|
129
|
+
|
|
130
|
+
Options:
|
|
131
|
+
-V, --version output the version number
|
|
132
|
+
-h, --help display help for command
|
|
133
|
+
|
|
134
|
+
Commands:
|
|
135
|
+
build [options] Build the HarmonyOS project
|
|
136
|
+
run [options] Build and run the project on a connected device
|
|
137
|
+
update Update deveco-cli to the latest version
|
|
138
|
+
device Manage connected devices
|
|
139
|
+
emulator Manage emulator instances
|
|
140
|
+
skills Manage HarmonyOS skills
|
|
141
|
+
log [options] Obtain device application logs
|
|
142
|
+
create [options] Scaffold a new HarmonyOS application project
|
|
143
|
+
init [options] Install the deveco-cli skill or configure the deveco-mcp server into AI agents
|
|
144
|
+
serve Host bundled auxiliary protocol servers
|
|
145
|
+
docs [options] Search and read HarmonyOS documentation from local docs directory
|
|
146
|
+
help [command] display help for command
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
| 类别 | 命令 | 主要子命令 | 用途 |
|
|
150
|
+
| ----- | ---------- | --------------------------------------------------------------------- | --------------------------------------- |
|
|
151
|
+
| 项目脚手架 | `create` | - | 基于内置模板初始化新工程 |
|
|
152
|
+
| 构建打包 | `build` | `clean` | 编译并产出 `.hap` / `.hsp` / `.har` / `.app` |
|
|
153
|
+
| 部署运行 | `run` | - | 安装并启动应用 |
|
|
154
|
+
| 设备管理 | `device` | `list` / `view` | 查看当前连接设备与详情 |
|
|
155
|
+
| 模拟器 | `emulator` | `list` / `start` / `stop` / `create` / `delete` / `image` / `license` | 管理本地模拟器实例与系统镜像 |
|
|
156
|
+
| 日志诊断 | `log` | - | 获取 `hilog` 与崩溃日志 |
|
|
157
|
+
| 文档检索 | `docs` | `search` / `read` / `catalog` | 检索本地 HarmonyOS 文档 |
|
|
158
|
+
| 技能初始化 | `init` | - | 安装内置 `deveco-cli` 技能或配置 `deveco-mcp` |
|
|
159
|
+
| 技能管理 | `skills` | `list` / `find` / `add` / `remove` | 管理 HarmonyOS 技能市场中的技能 |
|
|
160
|
+
| 辅助服务 | `serve` | `mcp` | 启动内置辅助服务 |
|
|
161
|
+
| 自更新 | `update` | - | 升级到最新版本 |
|
|
162
|
+
|
|
163
|
+
</details>
|
|
164
|
+
|
|
165
|
+
<details>
|
|
166
|
+
<summary><b>创建项目</b></summary>
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
devecocli create --project-path ./MyApp --app-name MyApp
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
| 参数 | 说明 | 默认值 |
|
|
173
|
+
| ------------------------ | ------------------------------ | ------------------------ |
|
|
174
|
+
| `--project-path <path>` | 项目目录路径 | `./<app-name>` |
|
|
175
|
+
| `--app-name <name>` | 应用名称,必填;以字母开头,仅含字母、数字、下划线 | - |
|
|
176
|
+
| `--bundle-name <bundle>` | Bundle Name,默认根据 `app-name` 生成 | `com.example.<app-name>` |
|
|
177
|
+
| `--api-level <level>` | API 级别(`>=17`),自动探测 SDK 版本 | 无 IDE 时默认 `23` |
|
|
178
|
+
|
|
179
|
+
</details>
|
|
180
|
+
|
|
181
|
+
<details>
|
|
182
|
+
<summary><b>构建与运行</b></summary>
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# 构建项目
|
|
186
|
+
devecocli build
|
|
187
|
+
|
|
188
|
+
# 构建指定模块
|
|
189
|
+
devecocli build --modules entry library
|
|
190
|
+
|
|
191
|
+
# 构建 release 版本
|
|
192
|
+
devecocli build --build-mode release
|
|
193
|
+
|
|
194
|
+
# 构建并运行
|
|
195
|
+
devecocli run
|
|
196
|
+
|
|
197
|
+
# 运行到指定设备
|
|
198
|
+
devecocli run --device 127.0.0.1:5555
|
|
199
|
+
|
|
200
|
+
# 清理构建产物并停止 daemon
|
|
201
|
+
devecocli build clean
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### `build` 参数
|
|
205
|
+
|
|
206
|
+
| 参数 | 说明 | 默认值 |
|
|
207
|
+
| ------------------------ | ----------------------------------- | -------------------- |
|
|
208
|
+
| `--product <product>` | Product 名称;仅指定该参数时构建整个 product | `default` |
|
|
209
|
+
| `--modules <modules...>` | 指定模块,格式为 `module` 或 `module@target` | 单入口模块时自动检测;多入口时需显式指定 |
|
|
210
|
+
| `--build-mode <mode>` | 构建模式(`debug` / `release` 等) | `debug` |
|
|
211
|
+
|
|
212
|
+
### `run` 参数
|
|
213
|
+
|
|
214
|
+
| 参数 | 说明 | 默认值 |
|
|
215
|
+
| --------------------- | ------------------------------------- | ------------------------------------ |
|
|
216
|
+
| `--module <module>` | 要运行的模块,格式为 `module` 或 `module@target` | 单个可运行模块时自动检测 |
|
|
217
|
+
| `--device <device>` | 目标设备,支持设备名称或序列号 | 单设备时自动检测 |
|
|
218
|
+
| `--product <product>` | Product 名称 | `default` |
|
|
219
|
+
| `--build-mode <mode>` | 构建模式 | `debug` |
|
|
220
|
+
| `--ability <ability>` | 要启动的 Ability | 优先 `EntryAbility`,否则取模块中的第一个 Ability |
|
|
221
|
+
| `--uninstall` | 安装前先卸载已有应用 | - |
|
|
222
|
+
| `--skip-build` | 跳过构建步骤,直接部署已有产物 | - |
|
|
223
|
+
|
|
224
|
+
</details>
|
|
225
|
+
|
|
226
|
+
<details>
|
|
227
|
+
<summary><b>设备与模拟器</b></summary>
|
|
228
|
+
|
|
229
|
+
### 设备管理
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# 列出已连接设备
|
|
233
|
+
devecocli device list
|
|
234
|
+
|
|
235
|
+
# 查看设备详情
|
|
236
|
+
devecocli device view
|
|
237
|
+
devecocli device view -t 127.0.0.1:5555
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
`device view` 参数:
|
|
241
|
+
|
|
242
|
+
- `-t, --target <serialOrName>`:目标设备,多设备时必填。
|
|
243
|
+
|
|
244
|
+
> `run`、`log` 等命令中的 `--device` 同时支持设备名称模糊匹配和序列号精确匹配。
|
|
245
|
+
|
|
246
|
+
### 模拟器管理
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# 列出所有模拟器
|
|
250
|
+
devecocli emulator list
|
|
251
|
+
|
|
252
|
+
# 启动模拟器
|
|
253
|
+
devecocli emulator start HarmonyOS_Phone
|
|
254
|
+
|
|
255
|
+
# 停止模拟器
|
|
256
|
+
devecocli emulator stop HarmonyOS_Phone
|
|
257
|
+
|
|
258
|
+
# 创建模拟器
|
|
259
|
+
devecocli emulator create MyPhone --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
260
|
+
|
|
261
|
+
# 删除模拟器
|
|
262
|
+
devecocli emulator delete MyPhone
|
|
263
|
+
|
|
264
|
+
# 系统镜像管理
|
|
265
|
+
devecocli emulator image list
|
|
266
|
+
devecocli emulator image download --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
267
|
+
devecocli emulator image remove --device-type phone --os-version "HarmonyOS 6.0.1(21)"
|
|
268
|
+
|
|
269
|
+
# 许可协议
|
|
270
|
+
devecocli emulator license view
|
|
271
|
+
devecocli emulator license accept
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
> `emulator start` 和 `emulator image download` 执行前会自动检查许可协议状态,未接受时将提示先运行 `emulator license accept`。
|
|
275
|
+
|
|
276
|
+
**设备类型:** `phone`、`foldable`、`widefold`、`triplefold`、`tablet`、`2in1`、`2in1 foldable`、`wearable`、`tv`
|
|
277
|
+
|
|
278
|
+
### `emulator create` 参数
|
|
279
|
+
|
|
280
|
+
| 参数 | 说明 | 默认值 |
|
|
281
|
+
| ------------------------ | ------------------------------------- | --- |
|
|
282
|
+
| `<name>` | 模拟器名称,仅含字母、空格、数字、下划线 | - |
|
|
283
|
+
| `--device-type <type>` | 设备类型,必填 | - |
|
|
284
|
+
| `--os-version <version>` | 已下载的系统镜像版本,必填,须与 `image list` 中的值完全一致 | - |
|
|
285
|
+
| `--force` | 覆盖已有实例 | - |
|
|
286
|
+
|
|
287
|
+
### `emulator image list` 参数
|
|
288
|
+
|
|
289
|
+
| 参数 | 说明 | 默认值 |
|
|
290
|
+
| ---------------------- | ---------------------- | ------- |
|
|
291
|
+
| `--device-type <type>` | 按设备类型筛选 | 全部 |
|
|
292
|
+
| `--all` | 列出所有镜像(已下载 + 未下载) | 仅已下载 |
|
|
293
|
+
| `--format <format>` | 输出格式(`table` / `json`) | `table` |
|
|
294
|
+
|
|
295
|
+
### `emulator image download` 参数
|
|
296
|
+
|
|
297
|
+
| 参数 | 说明 | 默认值 |
|
|
298
|
+
| ------------------------ | ------------------------------------ | --- |
|
|
299
|
+
| `--device-type <type>` | 设备类型,必填 | - |
|
|
300
|
+
| `--os-version <version>` | 系统镜像版本,必填,例如 `"HarmonyOS 6.0.1(21)"` | - |
|
|
301
|
+
| `--force` | 覆盖已存在的镜像 | - |
|
|
302
|
+
|
|
303
|
+
### `emulator image remove` 参数
|
|
304
|
+
|
|
305
|
+
| 参数 | 说明 | 默认值 |
|
|
306
|
+
| ------------------------ | ----------------------------------- | --- |
|
|
307
|
+
| `--device-type <type>` | 设备类型,必填 | - |
|
|
308
|
+
| `--os-version <version>` | 系统镜像版本,必填,支持镜像标签和 `softwareVersion` | - |
|
|
309
|
+
|
|
310
|
+
</details>
|
|
311
|
+
|
|
312
|
+
<details>
|
|
313
|
+
<summary><b>日志与文档检索</b></summary>
|
|
314
|
+
|
|
315
|
+
### 日志诊断
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# 获取日志
|
|
319
|
+
devecocli log
|
|
320
|
+
|
|
321
|
+
# 按级别过滤
|
|
322
|
+
devecocli log --level E
|
|
323
|
+
|
|
324
|
+
# 按应用过滤
|
|
325
|
+
devecocli log --bundle-name com.example.app
|
|
326
|
+
|
|
327
|
+
# 崩溃日志
|
|
328
|
+
devecocli log --crash
|
|
329
|
+
|
|
330
|
+
# 实时日志
|
|
331
|
+
devecocli log --follow
|
|
332
|
+
|
|
333
|
+
# 时间窗口
|
|
334
|
+
devecocli log --from 5m --tail 100
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
| 参数 | 说明 | 默认值 |
|
|
338
|
+
| ----------------------------- | --------------------------------- | -------- |
|
|
339
|
+
| `--device <device>` | 目标设备,支持设备名称或序列号 | 单设备时自动检测 |
|
|
340
|
+
| `--crash` | 崩溃日志模式 | - |
|
|
341
|
+
| `--level <level>` | 日志级别(`D` / `I` / `W` / `E` / `F`) | - |
|
|
342
|
+
| `--bundle-name <bundle-name>` | 按 Bundle Name 过滤 | - |
|
|
343
|
+
| `--keyword <keyword>` | 关键词过滤 | - |
|
|
344
|
+
| `--tail <num>` | 只显示最新 N 行 | - |
|
|
345
|
+
| `--from <start>` | 起始偏移(如 `30s`、`5m`、`2.5m`) | - |
|
|
346
|
+
| `--to <end>` | 结束偏移(格式同 `--from`) | - |
|
|
347
|
+
| `--follow` | 实时跟随,不可与 `--to` 同时使用 | - |
|
|
348
|
+
|
|
349
|
+
### 本地文档检索
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# 搜索文档
|
|
353
|
+
devecocli docs search ArkTS Row layout
|
|
354
|
+
|
|
355
|
+
# 指定目录搜索
|
|
356
|
+
devecocli docs search @State @Prop --catalog harmonyos-guides --limit 10
|
|
357
|
+
|
|
358
|
+
# 阅读文档
|
|
359
|
+
devecocli docs read harmonyos-guides/application-models/arkts-page-start-overview
|
|
360
|
+
|
|
361
|
+
# 列出所有目录
|
|
362
|
+
devecocli docs catalog
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
参数说明:
|
|
366
|
+
|
|
367
|
+
- `search <keywords...>`:关键词搜索,支持多个关键词,采用 OR 逻辑,最多 10 个关键词。
|
|
368
|
+
- `--catalog <name>`:指定目录,默认 `all`。
|
|
369
|
+
- `--format <default|json>`:输出格式,默认 `default`。
|
|
370
|
+
- `--limit <n>`:最大结果数,默认 `20`。
|
|
371
|
+
- `read <documentId>`:根据文档 ID 阅读完整内容。
|
|
372
|
+
- `catalog`:列出所有可用目录。
|
|
373
|
+
|
|
374
|
+
</details>
|
|
375
|
+
|
|
376
|
+
<details>
|
|
377
|
+
<summary><b>AI Agent、技能与 MCP</b></summary>
|
|
378
|
+
|
|
379
|
+
### 什么时候用 `init`、`skills`、`serve`
|
|
380
|
+
|
|
381
|
+
- `init`:推荐新用户使用,用于安装内置 `deveco-cli` 技能或配置 `deveco-mcp`
|
|
382
|
+
- `skills`:用于管理 HarmonyOS 技能市场中的技能
|
|
383
|
+
- `serve`:用于启动内置辅助服务,当前仅有 `serve mcp`
|
|
384
|
+
|
|
385
|
+
### `init`
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
# 安装技能到所有检测到的 AI Agent
|
|
389
|
+
devecocli init
|
|
390
|
+
|
|
391
|
+
# 仅安装技能到指定 Agent
|
|
392
|
+
devecocli init --skill --agent opencode
|
|
393
|
+
|
|
394
|
+
# 已安装过时强制更新技能
|
|
395
|
+
devecocli init -f
|
|
396
|
+
|
|
397
|
+
# 配置全局 MCP 服务器
|
|
398
|
+
devecocli init --mcp
|
|
399
|
+
|
|
400
|
+
# 为指定 Agent 配置项目级 MCP 服务器
|
|
401
|
+
devecocli init --mcp --agent opencode --project ./my-app
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
| 参数 | 说明 | 默认值 |
|
|
405
|
+
| ------------------ | ------------------------------ | ------------- |
|
|
406
|
+
| `--agent <agents>` | 目标 Agent(逗号分隔) | 所有已检测到的 Agent |
|
|
407
|
+
| `--project <path>` | 安装到项目目录 | - |
|
|
408
|
+
| `--path <path>` | 直接安装到指定路径 | - |
|
|
409
|
+
| `--skill` | 仅安装内置 `deveco-cli` 技能 | 默认行为 |
|
|
410
|
+
| `--mcp` | 仅配置 `deveco-mcp` MCP 服务器,不安装技能 | - |
|
|
411
|
+
| `-f, --force` | 强制覆盖已有配置 | - |
|
|
412
|
+
|
|
413
|
+
### `skills`
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
# 列出技能列表
|
|
417
|
+
devecocli skills list --long
|
|
418
|
+
|
|
419
|
+
# 搜索技能
|
|
420
|
+
devecocli skills find harmony
|
|
421
|
+
|
|
422
|
+
# 安装所有技能
|
|
423
|
+
devecocli skills add --all
|
|
424
|
+
|
|
425
|
+
# 安装指定技能
|
|
426
|
+
devecocli skills add --skill deveco-cli --agent cursor
|
|
427
|
+
|
|
428
|
+
# 移除技能
|
|
429
|
+
devecocli skills remove --skill deveco-cli
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### `serve mcp`
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
devecocli serve mcp
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
`serve` 当前仅提供 `mcp` 子命令,用于以本地 `stdio` 模式启动 MCP 服务器,为 ArkTS 和 C/C++ 提供语法检查能力。
|
|
439
|
+
|
|
440
|
+
</details>
|
|
441
|
+
|
|
442
|
+
<details>
|
|
443
|
+
<summary><b>调试与常见问题</b></summary>
|
|
444
|
+
|
|
445
|
+
### 查看底层命令调用
|
|
446
|
+
|
|
447
|
+
如需打印底层 `ohpm`、`hvigor`、`hdc`、`emulator` 等实际执行命令,可设置:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
DEVECO_CLI_DEBUG=1 devecocli build
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### 常见问题
|
|
454
|
+
|
|
455
|
+
**Q: CLI 报错找不到 DevEco Studio?**
|
|
456
|
+
|
|
457
|
+
A: 确保已安装 DevEco Studio 6.1.0 或更高版本。CLI 会按以下顺序探测:
|
|
458
|
+
|
|
459
|
+
- **Windows**:注册表 -> `C:\Program Files\Huawei\DevEco Studio`
|
|
460
|
+
- **macOS**:`~/Applications` -> `/Applications`
|
|
461
|
+
|
|
462
|
+
**Q: 多设备环境下如何选择目标设备?**
|
|
463
|
+
|
|
464
|
+
A: 使用 `--device` 指定设备名或序列号:
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
devecocli run --device "My Phone"
|
|
468
|
+
devecocli run --device 127.0.0.1:5555
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
**Q: 模拟器启动或下载镜像时被许可协议阻塞?**
|
|
472
|
+
|
|
473
|
+
A: 需要在本地交互终端运行:
|
|
474
|
+
|
|
475
|
+
```bash
|
|
476
|
+
devecocli emulator license accept
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
确认 `y` 或 `yes` 后重试。AI Agent 无法替用户完成该交互步骤。
|
|
480
|
+
|
|
481
|
+
**Q: 安装应用时提示** **`install sign info inconsistent`?**
|
|
482
|
+
|
|
483
|
+
A: 使用 `--uninstall` 先卸载旧版本:
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
devecocli run --uninstall
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
</details>
|
|
490
|
+
|
|
491
|
+
## 开发
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
npm install
|
|
495
|
+
npm run dev
|
|
496
|
+
npm start -- <command>
|
|
497
|
+
npm run lint
|
|
498
|
+
npm run format
|
|
499
|
+
npm run build
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
- 架构与目录说明见 [`AGENTS.md`](./AGENTS.md)
|
|
503
|
+
- 如需参与维护,建议先阅读 `AGENTS.md` 中的约定与架构说明
|
|
504
|
+
|
|
505
|
+
## 许可证
|
|
506
|
+
|
|
507
|
+
[MIT](./LICENSE)
|