HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题
HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题
【问题现象】
SDK项目中对功能做模块化拆分,如library、har1、har2,library依赖了har1和har2,点击Make Module ‘library’ 发现har1和har2并没有打包进library.har中。
【背景知识】
【定位思路】
- 检查har1、har2模块module.json5文件中的type字段是否为har类型。
- 检查library模块oh-package.json5文件dependencies字段中是否已添加对har1、har2模块编译产物的依赖。
【解决方案】
方案一:
- 确认har1、har2模块module.json5文件中的type字段为har类型:
{
"module": {
"name": "har1",
"type": "har", // har类型
"deviceTypes": [
"default",
"tablet",
"2in1"
]
}
}
- 编译构建har1、har2,得到编译产物 har1.har和har2.har。在library模块中新建文件夹 libs(或其他名称),将编译产物 har1.har和har2.har拷贝到 libs 文件夹中,在library模块中添加依赖指向模块内的两个HAR文件,编译构建 library 模块,此时har1和har2会被打包进library.har,可以供其他项目使用。
- 开发工程结构:
- library模块的oh-package-lock.json5:
{
"name": "library1",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "Index.ets",
"author": "",
"license": "Apache-2.0",
"dependencies": {
"har1": "./libs/har1.har", // 依赖1
"har2": "./libs/har2.har" // 依赖2
}
}
- 编译工程结构:
方案二:
发布HAR包到OHPM私仓,ohpm添加仓库,在oh-package.json5文件中配置依赖的HAR包,可以直接从仓库中下载安装。
发布HAR包参考指导。
更多关于HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS鸿蒙Next中怎么解决打包时依赖的HAR包没有打进去的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,若打包时发现依赖的HAR包未被打入,可以检查以下方面:
-
依赖配置:确保在
oh-package.json5
文件中正确声明了HAR包的依赖项,路径和版本号无误。 -
模块引用:确认在代码中正确导入了HAR包的模块,且导入路径与HAR包的实际路径一致。
-
构建配置:检查
build-profile.json5
文件,确保HAR包被正确包含在构建配置中,未在exclude
或ignore
列表中。 -
HAR包结构:确认HAR包的结构符合规范,包含必要的
index.js
或index.ts
等入口文件。 -
构建日志:查看构建日志,确认是否有关于HAR包的警告或错误信息,根据日志进行排查。
-
缓存清理:尝试清理构建缓存,重新执行构建命令,确保缓存问题不影响打包。
-
版本兼容性:确认HAR包的版本与当前项目使用的HarmonyOS SDK版本兼容。
通过以上步骤,可以排查并解决HAR包未被打入的问题。