HarmonyOS 鸿蒙Next oh-package.json5 dependencies 资源依赖覆盖规则
HarmonyOS 鸿蒙Next oh-package.json5 dependencies 资源依赖覆盖规则 在 dependencies 里面有多个依赖库
"dependencies": {
"a": "file:../a",
"b": "file:../b",
"c": "file:../c"
}
上面几个模块依赖 a, b ,c 都存在相同的图片资源 icon_person.png, 最终是使用哪个模块的图片
他们的规则是什么
相同的功能/内容可以做成hsp放在私仓里面,然后业务模块通过引用私仓直接引用,可参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-V5
当前还是支持使用直接依赖的方式
未在项目 oh-package.json5 中声明的依赖,在项目中如果依然被直接引用,被称之为“幽灵依赖”现象。这就会导致问题:间接依赖版本的不可控性。如果代码里使用到某个版本的间接依赖,不同时间安装的依赖可能版本不一致,程序运行可能出现意想不到的错误。ohpm为了解决幽灵依赖的问题,设计了一个特殊的存储结构,从技术上进行限制、不允许引用间接依赖,从而避免出现幽灵依赖问题。
你这三个依赖是har嘛
按照 oh-package.json5 中依赖的顺序,默认使用本模块的,如上依赖如果entry模块中不存在 icon_person.png会使用a中的
更多关于HarmonyOS 鸿蒙Next oh-package.json5 dependencies 资源依赖覆盖规则的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
优先使用排名级别高的a里面的同名资源:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/har-package-V5#导出资源
在HarmonyOS(鸿蒙)系统中,关于oh-package.json5
文件中的dependencies
资源依赖覆盖规则,主要涉及以下几个方面:
-
依赖声明:在
oh-package.json5
文件中,dependencies
字段用于声明当前模块所依赖的其他模块或包。这些依赖可以是鸿蒙系统的内置模块,也可以是第三方开发的模块。 -
版本管理:对于每个依赖,可以指定具体的版本号或版本范围。在解析依赖时,系统会按照指定的版本规则来查找和加载相应的模块。
-
覆盖规则:
- 如果多个模块声明了相同名称的依赖,且版本号不同,系统会根据依赖解析算法(如最近版本优先、锁定版本等)来确定最终加载的模块版本。
- 在某些情况下,开发者可能希望强制使用某个特定版本的依赖,这可以通过在项目的构建配置中进行显式指定来实现。
-
依赖解析:鸿蒙系统的构建工具会根据
oh-package.json5
文件中的依赖声明,自动解析并下载所需的依赖模块,确保项目的正确构建和运行。
请注意,具体的覆盖规则和解析算法可能因鸿蒙系统的不同版本而有所差异。如果在实际开发中遇到依赖覆盖相关的问题,建议参考鸿蒙系统的官方文档或开发者社区以获取最新的信息和解决方案。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html