【关键字】
闭源 / HAR / 依赖 / 不包含 / compileOnly / 编译
【问题描述】
创建了一个闭源library,这个library里依赖了其他的har包(闭源)。当对这个闭源library进行打包时,会把这些依赖的包也打进去,但是entry里也依赖了其他的har包(闭源),导致会有资源重复的问题。有没有类似Android依赖的方法compileOnly(),只会在运行时使用,编译不添加进去。
test_02是包含资源的har包。entry和test_01都依赖test_02编译后的har包,现在想test_01编译时不把test_02的包编译进去。
【解决方案】
可以通过以下方法实现:
-
test_01直接依赖 test_02 module,不通过har文件的方式依赖。
test_01\oh-package.json5中"dependencies"如下:
"dependencies": { "mftp_image": "file:../test_02", }
这样test_01 har包中就不会有test_02的har存在。
-
在entry中通过文件的方式依赖test_01.har和 test_02.har。
entry\oh-package.json5中"dependencies"如下:
"dependencies": { "test_01": "file:./libs/test_01.har", "mftp_image": "file:./libs/test_02.har", }
-
在项目级的oh-package.json5中,通过overrides使用同一个版本的test_02.har。
项目级的oh-package.json5中“overrides”如下:
"overrides": { "mftp_image": "file:./entry/libs/test_02.har" }