鸿蒙-如何发布一个三方库

文章目录

最近不是觉得官方的展示富文本的控件 RichTextRichEditor不好用嘛,然后自己撸了一个能展示简单富文本的组件,具体文章内容看 鸿蒙-做一个简单的、大家都能学会的富文本解析渲染控件。然后把这个控件发布到了 OpenHarmony三方库中心仓,地址 simplehtmlrender,没有依赖任何三方控件,使用官方的xml解析器进行解析,使用 TextContainerSpanSpanImageSpan进行展示。
这里记录一下发布过程以及需要注意的点

需要的工具

DevEcoStudio和ohpm命令行工具。

安装完DevEcoStudio后,windows上ohpm在安装目录的DevEco Studio\tools\ohpm\bin文件夹下,mac上是在/Applications/DevEco-Studio.app/Contents/tools/ohpm/bin文件夹下。

注册账号

这没啥好说的,按提示注册就好了

认证管理

生成公私密钥文件

利用工具 ssh-keygen 生成公、私钥文件,这个和github的流程差不多

shell 复制代码
ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey 

windows下可以把路径换成C:\Users\username\.ssh_ohpm

需要注意几点:

  • 先创建对应的文件夹,否则会报错。
  • 生成公私密钥文件时一定要输入密码,不要直接回车跳过,要不然在发布流程会有对应提示,还得再重新生成

上传公钥

在【个人中心】-【认证管理】下:点击页面左上角的"新增"按钮,并将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。

.ohpmrc文件的key_path字段上。该文件一般在C:\Users\username\.ohpm 或者mac的~/.ohpm文件夹下。

找不到这个文件也可以执行下面的命令进行配置

shell 复制代码
ohpm config set key_path ~/.ssh_ohpm/mykey 

同样的,windows下把路径换成C:\Users\username\.ssh_ohpm

发布之前的配置

登录OpenHarmony三方库中心仓,从 【个人中心】页面中【复制发布码】,并配置到.ohpmrc文件中publish_id字段上,可执行如下命令:

shell 复制代码
ohpm config set publish_id your_publish_id

配置发布地址:

shell 复制代码
ohpm config set publish_registry https://ohpm.openharmony.cn/ohpm

其他

可以创建自己的组织,这个不是必须的。

注意一下三方库的名称,三方库名称指南

编写及发布

创建项目

创建一个新的项目,然后在项目中创建一个Module,这里需要选择static library。然后在这个Module中编写相关代码。

必须的文件

README.md

在Module的根目录创建一个 README.md 文件,描述您三方库的代码以及如何使用它,文件不能为空。

并且该文件中必须 包含如何安装,也就是 ohpm install 库名字,否则审核不通过。

可以看下其他仓库怎么写的。基本上包含如何安装、如何使用以及一些示例。

该文件的内容会展示在仓库的描述标签下。

CHANGELOG.md

在Module的根目录中,创建一个 CHANGELOG.md 文件,描述您三方库的代码不同版本的变更内容,文件不能为空。

该文件的内容会展示在仓库的更新日志标签下

LICENSE

在Module的根目录中,创建一个 LICENSE 文件,指定该软件包可以在什么样的许可下被使用、修改和共享,文件不能为空。

oh-package.json5
json 复制代码
{
  "name": "simplehtmlrender",
  "version": "1.0.2",
  "description": "简易的富文本渲染控件,支持span、font、br、a标签,支持color、font-color、size、font-size、background、href属性",
  "main": "Index.ets",
  "keywords": ["富文本","html展示","富文本展示"],
  "author": {"name": 'huangyuan',"email": "huangyuan@huangyuanlove.com"},
  "license": "Apache-2.0",
  "homepage": 'https://juejin.cn/post/7427455855941156876',
  "repository":'https://gitee.com/huangyuan/SimpleHtmlRender',
  "dependencies": {},
}

其中,nameversiondescriptionkeywordsauthorlicense字段是必须的

评分

三方库中央仓里面还有个points评分,最高是50分,这个是根据文件、文档的健全程度来打分的,不包含任何个人主观看法。

这个评分很好弄,按照标准来就行

发布

发布之前删除敏感信息
发布之前删除敏感信息
发布之前删除敏感信息

发布的时候需要上传har文件,这就需要使用DevEcoStudio来构建,如何构建看(这里)[https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-build-har-V5\]。

我们在前面已经配置好了publish_idpublish_registry信息,接着执行ohpm publish <HAR路径>就可以了。过程中会让你输入生成公钥时使用的密码,上传成功后可以在个人中心-->消息中查看审核是否通过的消息。

如果上传失败,会提示对应的错误信息,根据提示修改就好了

这样就完成了发布。

相关推荐
木斯佳11 小时前
HarmonyOS 6实战(源码解析篇):音乐播放器的音频焦点管理(上)——AudioSession与打断机制
华为·音视频·harmonyos
2601_9495936512 小时前
基础入门 React Native 鸿蒙跨平台开发:卡片组件
react native·react.js·harmonyos
沐芊屿12 小时前
华为交换机配置M-LAG
服务器·网络·华为
qq_1777673713 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos
qq_1777673713 小时前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
烬头882114 小时前
React Native鸿蒙跨平台采用了函数式组件的形式,通过 props 接收分类数据,使用 TouchableOpacity实现了点击交互效果
javascript·react native·react.js·ecmascript·交互·harmonyos
qq_1777673714 小时前
React Native鸿蒙跨平台通过Animated.Value.interpolate实现滚动距离到动画属性的映射
javascript·react native·react.js·harmonyos
qq_1777673715 小时前
React Native鸿蒙跨平台实现消息列表用于存储所有消息数据,筛选状态用于控制消息筛选结果
javascript·react native·react.js·ecmascript·harmonyos
ujainu16 小时前
Flutter + OpenHarmony 实战:从零开发小游戏(三)——CustomPainter 实现拖尾与相机跟随
flutter·游戏·harmonyos
程序员清洒16 小时前
Flutter for OpenHarmony:Scaffold 与 AppBar — 应用基础结构搭建
flutter·华为·鸿蒙