0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【坚果派】JS开源库适配OpenHarmony系列——第一期实操

ITMING ? 来源:ITMING ? 作者:ITMING ? 2023-12-26 10:48 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 为什么适配JS开源库

由于OpenHarmony应用是基于ArkTS开发,而ArkTS是在保持TypeScript(简称TS)基础语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。因此在开发OpenHarmony三方库时,建议首选在成熟的JS/TS开源三方库上开发。

2. 选择哪个JS开源库合适

JS/TS开源三方库的选择需遵循易用性、实用性、维护性、扩展性等特性,通常方法是在github/npm上按照特性和语言搜索,找到star、fork数量较高的,且开源协议友好的JS/TS开源三方库进行适配。

3. 如何进行JS开源库适配

由于OpenHarmony开发框架中的API不完全兼容V8运行时的Build-In API,因此建议在适配JS三方库前,使用[js-e2e]扫描三方库,检查是否存在node.js/web内置模块的依赖。

js-e2e工具时基于eslint进行封装,可分析出JS库代码对node.js/web浏览器的内置模块、对象的依赖及兼容ES标准版本,使用该工具,可以快速知道该库是否依赖node.js/web内置模块。

如果扫描结果不依赖node.js/web内置模块,那么,这个库将比较轻松地适配。如果大量依赖node.js/web内置组件,这时可能需要fork源库代码,进行侵入式修改,或者再找是否存在更适合的其他三方库。

注:扫描时需同时扫描package.json文件中dependencies标签中直接依赖和间接依赖,因为发布OpenHarmony三方库中心仓时,需要将依赖的组件都发布。建议使用npm insall下载所有依赖的代码后,一起扫描查看结果。

3.1 luxon开源库信息

在npm中心仓库查看用于处理日期和时间的目标库luxon信息,包括开源仓库地址,主页地址,版本,协议,文件大小,总文件数,最后发布时间等。

image.png

在OpenHarmony中心仓搜索是否存在luxon目标库。

image.png

在luxon源代码仓库查看star和fork数量,查看是否被经常使用和经常被维护。

luxon仓库:https://github.com/moment/luxon

image.png

3.2 JS三方库扫描工具介绍

js-e2e是基于eslint进行封装、配置规则,用于分析JS库代码对NodeJS和Web浏览器的内置模块、对象的依赖及兼容ES标准版本的工具,支持检查指定源码目录和指定三方库的兼容性。

3.2.1 使用git工具同步js-e2e代码

image.png

3.2.2 安装npm依赖包

image.png

3.2.3 安装自定义的eslint输出报告formatter,包含csv、csvsimple、vscode、vscodesimple

image.png

3.2.4 执行检查命令

image.png

3.3 适配luxon三方库

  1. 使用DevEco Studio开发者工具,创建OpenHarmony应用工程。

image.png

  1. 在工程中新建Module,选择“Static Library”模板。

image.png

  1. 移除library模块src/main/ets目录中的components目录,删除Index.ets文件中的代码。
  2. 直接复制js-e2e工具检查时下载的luxon包(temp/node_modules/luxon),并将src目录中的文件复制到library模块的src/main/ets/lib目录下。

image.png

5)修改Index.ets文件为其他开发者提供调用接口

image.png

  1. 在oh-package.json5中完善三方库信息,如名称、简介、版本、开源协议、作者、关键字等。

image.png

  1. 在工程目录中选中三方库名称,单击菜单栏中的Build > Make Module ‘library’编译构建生成三方库HAR包,HAR包可在模块下的build目录下获取,包格式为*.har。

image.png

3.4 验证luxon三方库

  1. 打开entry/oh-package.json5配置文件,在dependencies标签中引入luxon三方库,并单击Sync Now进行同步。

image.png

  1. 打开pages/Index.ets页面文件,引入luxon三方库并显示当前日期。

image.png

至此,简单的JS开源三方库适配OpenHarmony已经完成了,下节我们将推出如何将讲解如何进行XTS测试,OpenHarmony三方库发布标准,适配的三方库发布到OpenHarmony三方库中心仓以及如何贡献到OpenHarmony-TPC。
审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3781

    浏览量

    44143
  • GitHub
    +关注

    关注

    3

    文章

    483

    浏览量

    17909
  • OpenHarmony
    +关注

    关注

    30

    文章

    3866

    浏览量

    18984
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    塔革特官方教学第一期:元器件及其相关操作。

    共同探索PCB设计之旅,深入了解TARGET3001!电子设计软件,体验高性价比的魅力。欢迎各位电子工程师参与塔革特官方教学直播第一期:元器件及其相关操作。
    发表于 11-08 11:32

    FRDM-KL25Z开发第一期(平台介绍、环境搭建、第一个工程)

    ``附件里是FRDM-KL25Z开发第一期(平台介绍、环境搭建、第一个工程)的资料。其中第一部分和第二部分PPT里有介绍。第三部分工程建立请看以下图片资料:``
    发表于 01-30 18:12

    福利:《BLDC驱动板如何合理布局第一期》直播

    BLDC驱动板如何合理布局(第一期)[ckplayer]http://media.elecfans.com/topic/gongkaike/2019/06/0e17e22964159596f26537bfa6b03736/30/hls/index.m3u8[/ckplayer]第二
    发表于 07-02 18:21

    请问第一期视频需要掌握什么程度?

    第一期视频刚看到NAND FLASH控制器,感觉里面好多代码都好难懂,看第一期视频需要掌握到什么程度?能看懂就好嘛?老师也就是对照着代码在讲,不需要会写吧?
    发表于 07-23 05:45

    请问你们第一期视频都是怎么学的?

    想问各位学完第一期或正在学习第一期的大佬: 你们第一期视频都是怎么学的呢?里面的代码都是自己码遍么?码的话按什么思路比较好,按韦老师上课讲的思路凭记忆写么 ?感觉里面有些课时的代码还
    发表于 09-24 05:45

    【视频教程】单片机新手教程(第一期)单片机介绍

    大家下午好!今天邀请了张角老师,来为大家深入讲解单片机,视频为系列,本次为第一期内容,请持续关注,我会进行更新!
    发表于 03-26 15:45

    硬件免费教程(第一期)积分运算电路公式推导方法

    大家上午好!今天给大家带来郭嘉老师的硬件教程,本次视频为第一期,本次视频教程全部免费公开。我们会持续进行更新,有问题可以留言同交流讨论。
    发表于 04-01 10:32

    硬件实战教程(第一期)常用运放电路原理图讲解

    大家中午好!这是我们硬件实战教程的第一期内容,由鲁肃老师为大家带来个实例项目的讲解。大家关于原理图设计的问题都可以提出来,有任何疑问也在评论区留言,欢迎各位坛友起与我们切磋交流!
    发表于 04-01 13:33

    RT-Thread 每日练打卡学习第一期完结,第二敬请期待

    RT-Thread 打卡学习第一期?完结撒花?,对于第一期大家有什么看法、有什么好的建议都可以在评论区说出来,以促使我们变得更好。在这里也想大家对于第二都期待什么样的课程,也可以在评论区说出来哦!凡是在本帖评论回复的都可领5个
    发表于 06-10 15:20

    电子报2011年第一期

    电子发烧友网向大家提供了电子报2011年的第一期报刊,希望对大家学习有用,感谢大家对电子发烧友网的支持 本内容绝对完整
    发表于 03-14 18:17 ?0次下载
    电子报2011年<b class='flag-5'>第一期</b>

    动手玩转Arduino(第一期)

    动手玩转Arduino(第一期),有需要的下来看看
    发表于 07-08 14:23 ?8次下载

    网课回放 I RK3588 实例课程第一期:项目总结和技术答疑

    网课回放 I RK3588 实例课程第一期:项目总结和技术答疑
    的头像 发表于 07-31 17:10 ?1704次阅读
    网课回放 I RK3588 实例课程<b class='flag-5'>第一期</b>:项目总结和技术答疑

    OpenHarmony竞赛训练营(第一期)决赛入围名单公示

    自 2 023 年 9月1 5 日启动以来, OpenHarmony竞赛训练营(第一期)获得全国高校的广泛关注,和各高校学生的积极参与。OpenHarmony竞赛训练营旨在引导高校学生进行
    的头像 发表于 10-30 09:06 ?1010次阅读
    <b class='flag-5'>OpenHarmony</b>竞赛训练营(<b class='flag-5'>第一期</b>)决赛入围名单公示

    集成电路学习与训平台配置方案-本科院校第一期建设

    北京革新创展科技有限公司提供的集成电路学习与训平台配置方案,主要用于本科院校第一期建设。如需详细方案资料,请随时联系我们。
    的头像 发表于 01-03 10:29 ?1743次阅读
    集成电路学习与<b class='flag-5'>实</b>训平台配置方案-本科院校<b class='flag-5'>第一期</b>建设

    集成电路学习与训平台配置方案-高职院校第一期建设

    北京革新创展能科技有限公司提供的集成电路学习与训平台配置方案,主要用于高职院校第一期建设需求,如需详细方案,请随时联系我们。
    的头像 发表于 01-03 10:42 ?1368次阅读
    集成电路学习与<b class='flag-5'>实</b>训平台配置方案-高职院校<b class='flag-5'>第一期</b>建设