在鸿蒙应用开发中,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 是否归档调试符号
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐