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

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信息,包括开源仓库地址,主页地址,版本,协议,文件大小,总文件数,最后发布时间等。
在openharmony中心仓搜索是否存在luxon目标库。
在luxon源代码仓库查看star和fork数量,查看是否被经常使用和经常被维护。
luxon仓库:https://github.com/moment/luxon
3.2 js三方库扫描工具介绍js-e2e是基于eslint进行封装、配置规则,用于分析js库代码对nodejs和web浏览器的内置模块、对象的依赖及兼容es标准版本的工具,支持检查指定源码目录和指定三方库的兼容性。
3.2.1 使用git工具同步js-e2e代码
3.2.2 安装npm依赖包
3.2.3 安装自定义的eslint输出报告formatter,包含csv、csvsimple、vscode、vscodesimple
3.2.4 执行检查命令
3.3 适配luxon三方库使用deveco studio开发者工具,创建openharmony应用工程。
在工程中新建module,选择“static library”模板。
移除library模块src/main/ets目录中的components目录,删除index.ets文件中的代码。直接复制js-e2e工具检查时下载的luxon包(temp/node_modules/luxon),并将src目录中的文件复制到library模块的src/main/ets/lib目录下。
5)修改index.ets文件为其他开发者提供调用接口。
在oh-package.json5中完善三方库信息,如名称、简介、版本、开源协议、作者、关键字等。
在工程目录中选中三方库名称,单击菜单栏中的build > make module ‘library’编译构建生成三方库har包,har包可在模块下的build目录下获取,包格式为*.har。
3.4 验证luxon三方库打开entry/oh-package.json5配置文件,在dependencies标签中引入luxon三方库,并单击sync now进行同步。
打开pages/index.ets页面文件,引入luxon三方库并显示当前日期。
至此,简单的js开源三方库适配openharmony已经完成了,下节我们将推出如何将讲解如何进行xts测试,openharmony三方库发布标准,适配的三方库发布到openharmony三方库中心仓以及如何贡献到openharmony-tpc。


智能化妆镜给你打造愉悦的化妆环境
5G商用方案现在进行到哪一步了
传感器对于物联网的发展有什么作用
专家权衡量子计算对人工智能、物理系统、数据分析和其它研究领域的影响
燃梦再起航 大润科技20周年庆在黔举办
【坚果派】JS开源库适配OpenHarmony系列——第一期实操
区块链智能合约是什么情况
深度了解国产工控主板,主板各部件名称及功能介绍
最适合玩王者荣耀的国产手机是什么
反激电源的基本原理?反激电源怎么选择工作模式?
荣耀20PRO上手 拍摄效果几乎达到了顶级旗舰的拍照水平
【产品应用】三个步骤,让你的EtherCAT电机转起来
新型成像技术显示单个的硼原子
华为荣耀v9:5.7英寸2K屏,双摄像头+麒麟960,售价2599元起
EDA行业2020年第三季度收入同比大幅增长两位数
如何用耳机判断小电容器质量
dfrobot红外遥控器(2按键)简介
智能合约将如何在Insolar平台上实施
新能源汽车高压系统功率级联调实验室
智能家居使人们迈入了现代化的生活