HarmonyOS鸿蒙Next中har包如何能包含所有模块里的JS代码文件

HarmonyOS鸿蒙Next中har包如何能包含所有模块里的JS代码文件

  1. SDK工程,里面没有页面,主要都是C++代码,还有少量js的接口封装代码和系统音频调用代码
  2. 工程里分了多个模块
  3. 我们期望是对外最终打包出一个har包给游戏接入,这个har包里要包含所有的C++ .so文件和js代码文件
  4. 目前的问题是打包出来的产物缺了部分模块内部的js代码文件,导致har包接入后报错找不到依赖的js文件
  5. 想咨询下有什么解决方案,可以是采用多个har包打包到一起, 或者采用什么方案把所有js代码部署到最终的har包中
3 回复
  1. ets文件不能跨包引入,所有跨包内容都需要在入口文件声明,随后通过依赖模块的方式进行使用。即ccmini模块内不能通过import * from '…/…/…/…/…'的方式直接引用AudioCore的ets文件。

  2. 若对外如果只提供ccmini的包,建议对应的har放入私仓(AudioCore、AudioEngine)

  3. 对于闭源SDK,第2点无法使用的话,建议将整个SDK重构为一个Har

  4. 若第3点也无法使用的话,可将AudioCore、AudioEngine对应的.har放在 oh-package同级目录,进行引用和打包,保证开发不阻塞

  5. index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出(通过export导出ArkUI组件、ts类和方法等);若相关的接口未在index.ets中注明,生产的har包被引入时,其中未导出的接口不能被使用到。

  6. 在打包时,请开启代码混淆功能,在使用Release模式进行编译时,可以对代码进行混淆及压缩处理,保护代码资产。

更多关于HarmonyOS鸿蒙Next中har包如何能包含所有模块里的JS代码文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,har包(HarmonyOS Ability Package)用于打包和分发应用能力。要确保har包包含所有模块里的JS代码文件,可以按照以下步骤操作:

  1. 项目结构配置:确保项目的src目录下包含所有需要打包的JS文件。每个模块的JS文件应放置在对应的目录中。

  2. 模块配置文件:在每个模块的module.json5文件中,确保正确声明了所有JS资源文件。例如:

    {
      "module": {
        "name": "moduleName",
        "js": [
          {
            "pages": [
              "pages/index/index"
            ],
            "name": "default",
            "path": "ets/default.js"
          }
        ]
      }
    }
    
  3. 打包配置:在项目根目录的build-profile.json5文件中,确保所有模块都被包含在打包配置中。例如:

    {
      "app": {
        "type": "har",
        "modules": [
          "module1",
          "module2"
        ]
      }
    }
    
  4. 构建har包:使用DevEco Studio的构建工具生成har包。在终端中运行以下命令:

    npm run build
    

    或者使用DevEco Studio的图形界面进行构建。

  5. 验证har包:构建完成后,检查生成的har包,确保所有JS文件都被正确包含。可以使用解压工具查看har包内容。

通过以上步骤,可以确保har包包含所有模块里的JS代码文件。

在HarmonyOS鸿蒙Next中,har包默认只会包含src/main/js目录下的JS代码文件。若需要包含所有模块中的JS代码文件,可以通过以下步骤实现:

  1. 配置build.gradle文件:在每个模块的build.gradle中,确保js目录被正确包含。例如:

    sourceSets {
        main {
            js {
                srcDirs = ['src/main/js', 'src/other/js'] // 包含其他JS目录
            }
        }
    }
    
  2. 使用har打包工具:在构建har包时,确保所有模块的JS文件被正确打包。可以通过gradle命令或IDE的构建工具来完成。

  3. 验证har包内容:解压生成的har文件,确认所有JS文件已包含在内。

通过这些步骤,可以确保har包中包含所有模块的JS代码文件。

回到顶部