能力说明
Hvigor支持在hvigorfile.ts里接收部分编译配置,以实现动态配置构建配置、并使能到构建的过程与结果中。
此能力现有两种方式实现:
- 以hvigor hook能力为基础通过插件上下文来动态配置。(推荐使用)
- 在hvigorfile.ts中通过overrides关键字导出动态配置。(不推荐使用)
通过hook以及插件上下文实现动态配置
Hvigor支持stage模型在hvigor hook中操作从硬盘上读取的以下配置文件:
- 每个hvigorNode中的build-profile.json5
- module.json5
- app.json5
- 每个module下的oh-package.json5文件中的dependency、devDependency、dynamicDependency以及version。
目前可以通过hvigor对象提供的上下文直接获取和修改配置以实现动态配置构建配置、并使能到构建的过程与结果中。
在hvigorfile.ts或hvigorconfig.ts文件中,可以使用Hvigor提供的API接口来实现此能力。
相比于下面的overrides的能力来说,通过hook以及插件上下文来动态修改签名和编译配置更为灵活和易于理解,功能也更为全面,推荐采用此种方式。具体使用方式请参考通过hook以及插件上下文动态配置构建配置(推荐使用)。
在hvigorfile.ts中通过overrides关键字导出动态配置
在hvigorfile.ts中,我们约定在导出的对象中的config.ohos属性里接收编译的配置:
export default {
system: hapTasks,
config: {
ohos: {
...
}
}
}
目前可以在工程级的hvigorfile.ts的config.ohos中配置的字段:
- overrides:定义需要覆盖的字段,会在构建过程中覆盖原有的对应配置项。
- signingConfig:签名配置,对应build-profile.json5里的signingConfigs配置项。
- type
- material
- certpath
- storePassword
- keyAlias
- keyPassword
- profile
- signAlg
- storeFile
- appOpt:对应app.json5里的配置项字段。
- bundleName
- bundleType
- icon
- label
- vendor
- versionCode
- versionName
- signingConfig:签名配置,对应build-profile.json5里的signingConfigs配置项。
目前可以在模块级的hvigorfile.ts的config.ohos中配置的字段:
- overrides:定义需要覆盖的字段,会在构建过程中覆盖原有的对应配置项。
- buildOption:对应build-profile.json5里的buildOption配置项。
- arkOptions
- externalNativeOptions
- napiLibFilterOption
- nativeLib
- resOptions
- sourceOption
- buildOption:对应build-profile.json5里的buildOption配置项。
配置在overrides项中的参数,其优先级会高于在配置项中的对应字段。