鸿蒙 依赖管理:添加依赖项

一、配置方式

依赖项可在工程级或模块级的oh-package.json5文件中配置,支持以下三种方式:

方式说明
远程三方包通过ohpm安装的远程依赖
本地模块通过文件夹路径或模块名引用本地模块
本地HAR/HSP包通过文件路径引用本地HAR或HSP包

依赖字段

字段说明
dependencies生产依赖,编译和运行时都需要
devDependencies开发依赖,仅开发时需要
dynamicDependencies动态依赖,仅限于动态依赖HSP的使用场景

示例

远程三方包

{
  "dependencies": {
    "@ohos/lottie": "^2.0.0"
  }
}

本地模块(两种方式):

{
  "dependencies": {
    // 方式一:配置本地文件夹路径
    "folder": "file:../folder",
    // 方式二:配置本地模块名(6.0.0 Beta1+)
    "moduleA": "@module:moduleA"
  }
}

本地HAR/HSP包

{
  "dependencies": {
    // HAR包
    "package": "file:../package.har",
    // HSP包(release模式生成tgz包)
    "package": "file:../package.tgz"
  }
}

注意:依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在对应模块的oh_modules目录下。

二、编译行为差异

名词说明
三方包依赖通过远程三方包和本地HAR/HSP包的方式指定依赖项
本地依赖通过本地模块的方式指定依赖项
开启bundledDependencies的字节码HAR字节码HAR的build-profile.json5中buildOption/arkOptions下的bundledDependencies字段配置为true

行为差异表

下表说明不同依赖配置方式在不同编译场景下的行为:

依赖项配置位置编译HAP编译HSP编译未开启bundledDependencies的字节码HAR编译开启bundledDependencies的字节码HAR
源码HAR-三方包依赖devDependencies1121
工程级dependencies//33
源码HAR-本地依赖devDependencies1121
工程级dependencies/121
字节码HAR-三方包依赖devDependencies2222
工程级dependencies//33
HSP-三方包依赖devDependencies1121

工程级dependencies

/dynamicDependencies

////
HSP-本地依赖devDependencies1121

工程级dependencies

/dynamicDependencies

/121

符号含义

符号含义
1依赖项仅代码文件参与编译,依赖项的自身配置不会参与收集,可能造成编译/运行时异常
2依赖项没有被收集,会导致编译异常
3编译正常,后续集成时可能会造成运行时异常
/编译和运行都正常

优化开关

从DevEco Studio 5.1.1 Beta1版本开始,hvigor-config.json5文件提供ohos.byteCodeHar.integratedOptimization字段:

{
  "properties": {
    "ohos.byteCodeHar.integratedOptimization": true
  }
}

说明

  • 该开关只是优化了依赖收集的逻辑,并没有优化依赖项的自身配置收集的逻辑

  • 编译字节码HAR,且依赖配置在工程级dependencies/dynamicDependencies对应的场景才能完全优化

  • 依赖包提供方和集成方都需要配置该字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值