with one click
harmonyos-hvigor-build
// HarmonyOS hvigor 构建系统:hvigorw CLI、hvigorfile.ts 结构、构建生命周期与 task 依赖图、常见构建错误排查
// HarmonyOS hvigor 构建系统:hvigorw CLI、hvigorfile.ts 结构、构建生命周期与 task 依赖图、常见构建错误排查
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | harmonyos-hvigor-build |
| description | HarmonyOS hvigor 构建系统:hvigorw CLI、hvigorfile.ts 结构、构建生命周期与 task 依赖图、常见构建错误排查 |
| tech_stack | ["harmonyos"] |
| language | ["typescript"] |
| capability | ["ci-cd"] |
| version | HarmonyOS unversioned |
| collected_at | "2025-01-01T00:00:00.000Z" |
Source: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-commandline, https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-api, https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-faqs, https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-config-ohos-guide
hvigor 是 HarmonyOS/OpenHarmony 的官方构建系统,基于 TypeScript 的任务编排引擎。通过 hvigorfile.ts 定义模块构建任务,hvigorw wrapper 驱动构建,自动完成 ArkTS 编译、资源打包、native 编译(CMake)、签名对齐等全流程。
# 核心构建命令
hvigorw assembleHap # 构建 debug HAP
hvigorw -p buildMode=release assembleHap # 构建 release HAP
hvigorw assembleHar # 构建 HAR 静态库
hvigorw assembleHsp # 构建 HSP 动态共享库
# 模块级构建
hvigorw :entry:assembleHap # 仅构建 entry 模块
# 清理
hvigorw clean
# CI 必需参数
hvigorw --no-daemon --stacktrace assembleHap
# 调试与探查
hvigorw tasks --all # 列出所有 task
hvigorw --info assembleHap # info 级别日志
hvigorw --debug assembleHap # debug 级别日志
hvigorfile.ts 最小结构:
import { hvigor } from '@ohos/hvigor-ohos-plugin';
export default {
system: hvigor,
plugins: [],
module: {
onCreate() { },
onPreBuild(taskContext) { },
onPostBuild(taskContext) { },
}
};
核心 CLI 参数:--no-daemon(禁用守护进程,CI 必须)、--stacktrace(完整堆栈)、-p key=value(传入构建参数)、--info/--debug(日志级别)。
构建生命周期:初始化 → 配置 → 执行(task 依赖图并行调度)。无依赖 task 并行执行,有依赖按拓扑顺序串行。
build-profile.json5 关键字段:app.signingConfigs(签名)、app.products[].targetSdkVersion、app.products[].buildOption.abiFilters(arm64-v8a / x86_64)、app.products[].buildOption.nativeBuildArgs(透传 CMake 参数)。
--no-daemonohpm install;若网络不可达,构建会卡住 —— 先确认 registry 可达性abiFilters 必须与实际 .so 的 ABI 一致NODE_OPTIONS="--max-old-space-size=4096" 扩大堆内存--stacktrace,单行报错通常不足以定位根因