HarmonyOS 通过json配置动态import,如果配置和import的不是一个module,配置的路径要如何写?

我想动态import一些类,这些类需要配置在一个json文件中,

比如我在rawfile下的json内容如下:

[  
  {  
    "name": "test",  
    "description": "",  
    "src": "./ets/test/Test.ts"  
  }  
]

然后我通过resourceManager.getRawFileContentSync("configs.json")读取到json,然后解析到里面的src的值。

获取到src后,想要动态导入,比如:

import(src).then(ns => {  
  let cls: ESObject = new ns.Test();  
})

我的问题是,我的配置json文件在A module下,import的地方是B module, 那我配置文件中的src的路径应该怎么写呢?

HarmonyOS
2024-10-23 12:24:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

在HAP/HSP/HAR的build-profile.json5中的buildOption中增加runtimeOnly配置项,仅在通过变量动态import时配置,静态import和常量动态import无需配置;并且,通过变量动态import加载API时也无需配置runtimeOnly。

// 变量动态import其他模块myHar  
let harName = 'myHar';  
import(harName).then(……);  
  
// 变量动态import本模块自己的单文件src/main/ets/index.ets  
let filePath = './Calc';  
import(filePath).then(……);  
  
对应的runtimeOnly配置:  
"buildOption": {  
  "arkOptions": {  
    "runtimeOnly": {  
      "packages": [ "myHar" ]  // 配置本模块变量动态import其他模块名,要求与dependencies中配置的名字一致。  
      "sources": [ "./src/main/ets/utils/Calc.ets" ]  // 配置本模块变量动态import自己的文件路径,路径相对于当前build-profile.json5文件。  
    }  
  }  
}

"runtimeOnly"的"packages":用于配置本模块变量动态import其他模块名,要求与dependencies中配置的名字一致。

"runtimeOnly"的"sources":用于配置本模块变量动态import自己的文件路径,路径相对于当前build-profile.json5文件。

您可以参考以下链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-dynamic-import-V5#动态import实现中的关键点

分享
微博
QQ
微信
回复
2024-10-23 14:57:18
相关问题
stage模式下,module.json5配置
260浏览 • 1回复 待解决
module.json5配置文件中type含义
576浏览 • 1回复 待解决
如何配置模块源码路径
800浏览 • 1回复 待解决
Native Module之间依赖如何配置
990浏览 • 1回复 待解决
如果一个多级获取数据问题?
3404浏览 • 1回复 待解决