尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

HarmonyOS7 工程化:hvigor 构建与多模块拆分配置

HarmonyOS7 工程化:hvigor 构建与多模块拆分配置
📅 发布时间:2026/7/17 7:20:19

文章目录

    • 前言
    • hvigor 是什么
      • 代码实现
    • 模块类型:HAP / HAR / HSP
    • 新建一个 HAR 库模块
      • 核心代码
      • 完整示例
    • 主模块引用库
      • 代码解析
      • 实现拆解
    • 多模块构建配置
      • 代码清单
    • 拆分的经验法则
    • 常见误区(小白必踩)
    • 完整可运行示例:hvigor 多模块配置
      • 关键代码
    • 写在最后

前言

项目小的时候,所有代码塞一个entry模块没问题。但等项目变大、多人协作、要复用组件库,就必须做模块化拆分。

HarmonyOS 用hvigor(基于 TS 的构建工具,类似前端的 Gradle/Webpack)管理构建和模块。这篇文章讲清:hvigor 是干嘛的、模块怎么拆(HAR/HSP)、多模块工程怎么配置。

hvigor 是什么

hvigor是鸿蒙的构建引擎,负责把你的 ArkTS 代码编译、打包成 app。你平时点 DevEco 的"运行"按钮,背后就是它在干活。

工程根目录的关键文件:

代码实现

project/ ├── build-profile.json5 # 工程级构建配置(签名、设备类型) ├── hvigorfile.ts # 根构建脚本 ├── entry/ # 主模块 │ └── hvigorfile.ts └── library/ # 共享库模块 └── hvigorfile.ts

每个模块都有自己的hvigorfile.ts,决定它是"应用模块"还是"库模块"。

模块类型:HAP / HAR / HSP

类型全称用途
HAPHarmonyOS Ability Package可独立运行的业务模块(如 entry)
HARHarmonyOS Ability Resource静态共享库,编译时拷贝进引用方
HSPHarmonyOS Shared Package动态共享包,运行时共享

记忆法:HAP 是"能跑的 app 模块";HAR 是"打包时复制的库"(每个引用方都留一份);HSP 是"运行时共享的库"(多模块共用一份,省包体)。

新建一个 HAR 库模块

把通用组件、工具函数抽到 HAR,供多个业务模块复用:

核心代码

// library/index.ets 导出的公共能力exportclassDateUtil{staticformat(ts:number):string{returnnewDate(ts).toLocaleString()}}exportconstCOLORS={primary:'#4A90E2'}

在library/hvigorfile.ts里声明它是 HAR:

完整示例

import{harTasks}from'@ohos/hvigor-ohos-plugin'exportdefault{system:harTasks,// 标记为 HAR 库plugins:[]}

主模块引用库

在entry/oh-package.json5里依赖这个库:

代码解析

{ "dependencies": { "mylibrary": "file:../library" } }

然后代码里直接 import 用:

实现拆解

import{DateUtil,COLORS}from'mylibrary'Text(DateUtil.format(Date.now())).fontColor(COLORS.primary)

多模块构建配置

build-profile.json5里声明产品形态和签名:

代码清单

{ "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [{ "name": "default" }] }, { "name": "library", "srcPath": "./library" } ], "app": { "signingConfigs": [{ "name": "default", "material": { /* 签名文件 */ } }], "products": [{ "name": "default", "signingConfig": "default" }] } }

拆分的经验法则

  • 通用 UI 组件、工具类 → 抽HAR(如uicomponents、utils)。
  • 多个 HAP 都要用的"大块功能"(如分享、登录)→ 抽HSP,省包体。
  • 业务逻辑独立、可单独上架 → 抽HAP(feature 模块)。
  • 模块之间禁止循环依赖(A 依赖 B,B 不能又依赖 A)。

常见误区(小白必踩)

误区说明
模块循环依赖A 依赖 B、B 又依赖 A,编译直接死循环,画依赖图避免。
HAR/HSP 选错小轻通用件用 HAR,重大块共用件用 HSP 省包体,别乱用。
通用件不抽库CommonButton复制了三遍还不抽,维护噩梦。

下面这段代码可以直接复制到 DevEco Studio 里运行。建议你边读边敲,改一改文末「动手改一改」里的参数,亲眼看看效果。

完整可运行示例:hvigor 多模块配置

在build-profile.json5里拆出独立feature模块。

关键代码

// build-profile.json5(节选) { "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [{ "name": "default" }] }, { "name": "feature_home", "srcPath": "./feature_home", "targets": [{ "name": "default" }] } ] }

你会看到什么:entry是主模块,feature_home是独立业务模块。编译后各模块可单独构建、按需加载,大项目协作不再互相阻塞。

动手改一改:

  • 新建feature_cart模块并在modules注册,体验增量编译。
  • 在oh-package.json5里把公共库抽成 HAR 依赖。
  • 用hvigorw assembleHap只构建指定模块,看速度提升。

写在最后

工程化前期麻烦,后期省命。模块拆分的核心判断是:这段代码会不会在别处复用?会,就抽库(HAR/HSP);业务独立,就拆 HAP。

别等项目烂到改一处崩三处才想起重构。现在就看看你的entry里有没有"明显通用"的组件,先抽一个 HAR 出来练手——模块化思维一旦建立,后面越写越顺。

相关新闻

  • Hermes桌面版AI助手跨平台安装与配置完整指南
  • HarmonyOS7 单元测试:从 @Test 到覆盖率
  • 超聚变2288H V6服务器Ubuntu 24.04安装与优化指南

最新新闻

  • 基于SpringBoot聊天交友系统设计与实现任务书
  • 2026年7月最新北京企业预算管理系统服务商TOP7实测红榜发布:资质/实施/运维全维度核验 联创辉煌登顶综合榜首 - 互联网科技品牌测评
  • 实战指南:从零搭建企业级CVAT计算机视觉标注平台
  • 亨得利大陆维保服务全解析|官网备案维修网点权威公布(2026年7月最新) - 亨得利中国服务中心
  • PowerToys中文汉化版终极指南:免费解锁Windows专业效率神器
  • 450种iTerm2配色方案终极指南:如何快速打造个性化终端界面

日新闻

  • 佛山青少年训练营推荐:军博营地实力顶尖 - 秋山寄远
  • 如何快速上手PvZ2 Gardendless:免费Web版植物大战僵尸2完整指南
  • jiuwen-deepsearch核心功能详解:规划-检索-反思三合一智能工作流

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号