HarmonyOS 鸿蒙Next hvigorfile.ts脚本编写,如何获取资源路径

发布于 1周前 作者 zlyuanteng 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next hvigorfile.ts脚本编写,如何获取资源路径
在entry模块的build-profile.json5中配置了多个target,并且每个target配置了多个资源目录,比如

"targets": [

{

"name": "default"

},

{

"name": "SZ_PMobile_SIT1",

"resource": {

"directories": [

"./src/main/resources_Test1",

"./src/main/resources"

]

},

},

我在工程级的hvigorfile.ts中编写如下代码:

const entryNode: HvigorNode = await new Promise(resolve => {

  hvigor.getNodeByName('entry').afterNodeEvaluate(node => {

    resolve(node)

  })

})

const hapContext = entryNode.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext

const currTargetName: string = await new Promise(resolve => {

  hapContext?.targets((target: Target) => {

    const targetName = target.getTargetName() // 当前target名

    resolve(targetName)

  })

})

console.log('target:', currTargetName)

const buildProfileOpt = hapContext.getBuildProfileOpt()

for (const target of buildProfileOpt['targets']) {

  if (target['name'] = currTargetName) {

    const resource = target['resource']

    // const resourceDirs = target['resource']['directories']

    console.log('wocao:', JSON.stringify(target, null, 2))

    break

  }

}

以上获取的target中没有resource属性,但是build-profile.json5中确实配置了,是时机不对吗,我该如何获取?


更多关于HarmonyOS 鸿蒙Next hvigorfile.ts脚本编写,如何获取资源路径的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-get-build-profile-para-guide-V5#section63421512324

添加 自定义构建参数,

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-build-expanding-context-V5#section1259315130216

hvigor任务 获取 build-profile.json5文件中内容的obj对象

大部分参数和 自定参数 均可以通过 app.json5、build-profile.json5 等配置文件获取,

编译模式 可以通过 OhosAppContext 的 getBuildMode 方法获取

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-build-expanding-context-V5#section19464194918557

DEBUG 字段同样可以通过 build-profile..json5 、app.json5 配置文件以及 编译模式 确定

更多关于HarmonyOS 鸿蒙Next hvigorfile.ts脚本编写,如何获取资源路径的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next环境中,编写hvigorfile.ts脚本时,获取资源路径的方式主要通过系统提供的API和配置管理来实现。

要获取资源路径,通常使用@ohos.multimedia.mediaasset模块或@ohos.resources模块。在hvigorfile.ts中,由于它是构建配置脚本,并非直接运行于设备端的JavaScript代码,因此不直接处理资源路径。但假设你是在构建过程中需要引用资源文件,可以通过配置文件指定资源路径,然后在运行时代码中通过API访问。

例如,在运行时代码中,你可以通过以下方式获取资源:

import resources from '@ohos.resources';

// 获取资源路径,假设资源文件名为'example.image'
let resourcePath = resources.getString(resources.ResourceTable.Media_example_image);

hvigorfile.ts中,你可能需要配置资源文件的打包路径,例如:

module.exports = {
    // 其他配置...
    resources: {
        include: [
            'resources/**/*' // 假设资源文件位于resources目录下
        ]
    }
};

注意,上述代码示例中的资源访问方式适用于运行时,而hvigorfile.ts主要用于构建配置,不涉及直接获取资源路径的逻辑。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部