鸿蒙 构建系统:hvigor-config.json5文件
·

在鸿蒙应用开发中,hvigor-config.json5是Hvigor构建系统的核心配置文件。
一、配置文件整体结构
hvigor-config.json5文件整体的结构如下:
modelVersion
dependencies
execution
├── analyze
├── daemon
├── incremental
├── parallel
├── typeCheck
└── optimizationStrategy
logging
└── level
debugging
└── stacktrace
nodeOptions
├── maxOldSpaceSize
├── maxSemiSpaceSize
└── exposeGC
javaOptions
└── Xmx
properties
├── hvigor.cacheDir
├── ohos.buildDir
├── enableSignTask
├── ohos.arkCompile.maxSize
├── hvigor.pool.cache.capacity
├── hvigor.pool.maxSize
├── ohos.pack.compressLevel
├── hvigor.analyzeHtml
├── hvigor.dependency.useNpm
├── ohos.compile.lib.entryfile
├── ohos.align.target
├── ohos.fallback.target
├── ohos.arkCompile.sourceMapDir
├── ohos.collect.debugSymbol
├── hvigor.enableMemoryCache
├── hvigor.memoryThreshold
├── ohos.nativeResolver
├── ohos.arkCompile.noEmitJs
├── ohos.arkCompile.singleFileEmit
├── ohos.sign.har
├── hvigor.keepDependency
├── ohos.arkCompile.emptyBundleName
├── ohos.uiTransform.Optimization
├── ohos.har.excludeHspDependencies
├── ohos.processLib.optimization
├── ohos.obfuscationRules.optimization
├── hvigor.incremental.optimization
├── hvigor.task.schedule.optimization
├── ohos.byteCodeHar.integratedOptimization
├── ohos.rollupCache.usePathPlaceholder
├── ohos.rollupCache.useSourceHash
├── ohos.arkCompile.writeRollupCache
├── ohos.align.deviceTypes
├── ohos.dependencies.types.enable
├── ohos.defaults.release.cmakebuildtype
└── ohos.defaults.autoLazyImport
parameterFile
二、字段说明
2.1 顶层字段
| 字段名称 | 可选/必选 | 类型 | 含义 |
|---|---|---|---|
| modelVersion | 必选 | 字符串 | 开发态版本号 |
| dependencies | 必选 | 对象 | 当前工程执行构建任务时,依赖的构建插件及版本,为npm源组件 |
| execution | 可选 | 对象 | 执行构建的相关配置参数,仅在命令行场景下生效 |
| logging | 可选 | 对象 | 日志相关配置参数 |
| debugging | 可选 | 对象 | 调测相关配置参数 |
| nodeOptions | 可选 | 对象 | Node相关配置参数 |
| javaOptions | 可选 | 对象 | Java相关配置参数 |
| properties | 可选 | 对象 | 额外配置参数 |
| parameterFile | 可选 | 字符串 | 自定义的参数化配置文件路径(6.0.2 Beta1+) |
注意:修改dependencies后,请根据界面提示点击Sync Now安装依赖。
2.2 execution字段
执行构建的相关配置参数。除optimizationStrategy外,其他字段仅在命令行构建场景下生效(IDE中需在Settings中设置)。
| 字段名称 | 类型 | 含义 |
|---|---|---|
| analyze | 字符串/布尔值 | 构建分析模式。 • normal(默认):普通模式 • advanced:进阶模式,更详细打点数据 • ultrafine:超精细化模式(6.0.0 Beta1+) • false:不启用 |
| daemon | 布尔值 | 是否启用守护进程编译,默认true |
| incremental | 布尔值 | 是否启用增量编译,默认true |
| parallel | 布尔值 | 是否启用并行编译,默认true |
| typeCheck | 布尔值 | 是否启用hvigorfile.ts类型检查,默认false |
| optimizationStrategy | 字符串 | 构建模式(5.1.1 Release+)。 • performance:性能优先,加快构建速度 • memory(默认):内存优先,减少内存占用 |
示例:
{
"execution": {
"analyze": "normal",
"daemon": true,
"incremental": true,
"parallel": true,
"typeCheck": false,
"optimizationStrategy": "performance"
}
}
2.3 logging字段
| 字段名称 | 类型 | 含义 |
|---|---|---|
| level | 字符串 | 日志级别:debug、info(默认)、warn、error |
2.4 debugging字段
| 字段名称 | 类型 | 含义 |
|---|---|---|
| stacktrace | 布尔值 | 是否启用堆栈跟踪,默认false |
2.5 nodeOptions字段
| 字段名称 | 类型 | 含义 |
|---|---|---|
| maxOldSpaceSize | 整型 | 守护进程最大老生代内存,默认8192MB |
| maxSemiSpaceSize | 整型 | 新生代最大半空间大小,默认16MB(5.1.0 Release+) |
| exposeGC | 布尔值 | 是否启用GC,默认true |
2.6 javaOptions字段
| 字段名称 | 类型 | 含义 |
|---|---|---|
| Xmx | 整型 | JVM最大堆内存,默认512MB |
三、properties字段
3.1 基础配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| hvigor.cacheDir | 字符串 | 指定.hvigor缓存文件夹存放路径 |
| ohos.buildDir | 字符串 | 指定构建产物目录(build目录)存放位置 |
| enableSignTask | 布尔值 | 是否启用HAP/HSP签名任务,默认true |
注意:同名的不同工程不可指定相同的存放位置。
3.2 编译优化配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| ohos.arkCompile.maxSize | 整型 | 编译ArkTS线程数量,默认5 |
| hvigor.pool.cache.capacity | 整型 | 内存缓存数据容量,默认4 |
| hvigor.pool.maxSize | 整型 | 编译过程中线程数量 |
| hvigor.enableMemoryCache | 布尔值 | 是否开启缓存,默认true |
| hvigor.memoryThreshold | 整型 | 内存管理阈值(MB) |
| ohos.nativeResolver | 布尔值 | 是否使用高性能插件进行依赖寻址,默认true |
3.3 产物/打包配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| ohos.pack.compressLevel | 字符串 | 打包压缩率等级:fast(默认)、standard、ultimate |
| ohos.sign.har | 布尔值 | 是否启用HAR签名任务,默认false |
| hvigor.keepDependency | 布尔值 | 是否保持hsp中的所有依赖,默认true |
3.4 调试/分析配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| hvigor.analyzeHtml | 布尔值 | 是否生成构建可视化html文件,默认false |
| ohos.arkCompile.sourceMapDir | 字符串 | sourceMap文件生成路径(API 12+) |
| ohos.collect.debugSymbol | 布尔值 | 是否归档sourceMap等调试符号,release默认true,debug默认false |
3.5 依赖/编译行为配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| hvigor.dependency.useNpm | 布尔值 | 是否使用npm下载hvigor依赖 |
| ohos.compile.lib.entryfile | 布尔值 | 是否从入口文件开始编译,默认false |
| ohos.arkCompile.noEmitJs | 布尔值 | 是否生成js中间产物,默认false |
| ohos.arkCompile.singleFileEmit | 布尔值 | 是否开启单文件解析后写入磁盘,默认false |
| ohos.har.excludeHspDependencies | 布尔值 | HAR产物中是否排除依赖的hsp,默认false |
3.6 优化开关(实验特性)
| 字段名称 | 类型 | 含义 |
|---|---|---|
| hvigor.incremental.optimization | 布尔值 | 是否开启任务增量判断优化,默认false |
| hvigor.task.schedule.optimization | 布尔值 | 是否开启任务调度优化,默认false |
| ohos.byteCodeHar.integratedOptimization | 布尔值 | 是否开启字节码HAR集成行为优化(5.1.1 Beta1+) |
3.7 其他配置
| 字段名称 | 类型 | 含义 |
|---|---|---|
| ohos.align.deviceTypes | 字符串数组 | 指定归一的设备类型(6.0.0 Beta2+) |
| ohos.defaults.release.cmakebuildtype | 字符串 | release模式下cmake构建类型(6.0.1 Beta1+) |
| ohos.defaults.autoLazyImport | 布尔值 | 是否自动添加lazy关键字(6.0.2 Beta1+) |
四、parameterFile参数化配置(6.0.2 Beta1+)
编译构建新增参数化配置功能。可添加一个参数化文件(json5格式),在该文件中维护build-profile.json5中部分字段的值,方便快速切换构建配置。
4.2 支持参数化的字段
| 字段 | 说明 |
|---|---|
| source.sourceRoots | 源码根目录 |
| resource.directories | 资源目录 |
| buildProfileFields | 构建Profile字段 |
4.3 配置示例
hvigor-config.json5:
{
"parameterFile": "./parameterFile.json5"
}
parameterFile.json5:
{
"source": {
"customizedSourceRoot1": "./src/default1",
"customizedSourceRoot2": "./src/default2"
}
}
模块级build-profile.json5:
{
"targets": [
{
"name": "default",
"source": {
"sourceRoots": ["@param:source.customizedSourceRoot1"]
}
}
]
}
注意:引用时必须以@param:开头。
五、核心点
| 配置项 | 说明 |
|---|---|
| modelVersion/dependencies | 必填,版本号和依赖 |
| execution | 构建执行参数(analyze/daemon/incremental/parallel等) |
| properties | 额外配置(缓存路径、线程数、压缩率、sourceMap等) |
| parameterFile | 参数化配置,支持sourceRoots/resource.directories/buildProfileFields |
properties常用字段
| 字段 | 默认值 | 说明 |
|---|---|---|
| enableSignTask | true | 是否启用签名 |
| ohos.arkCompile.maxSize | 5 | ArkTS编译线程数 |
| ohos.pack.compressLevel | fast | 压缩率等级 |
| hvigor.analyzeHtml | false | 是否生成构建可视化html |
| ohos.collect.debugSymbol | release:true/debug:false | 是否归档调试符号 |
更多推荐



所有评论(0)