HarmonyOS鸿蒙Next中ohpm发布的三方库卸载规则是怎样的呢

HarmonyOS鸿蒙Next中ohpm发布的三方库卸载规则是怎样的呢 我辛辛苦苦发布了一个库,用户量上来了,我居然依旧可以执行命令强制下架,这不给用户带来损失了么?
这个ohpm发布的三方库有规则限制么?是不是发布上去的ohpm中心仓的库,都可以被作者强制下架啊

我发布了好几个版本,都过去好几个月了 已经可以通过ohpm unpublish 三方库 -f 下架每个版本,直至库清空一个也没有。

那如果真这样的话,岂不是只能通过源码依赖了啊。 大家都不敢通过ohpm install直接远程下载依赖了。
一旦其他开发者通过ohpm install投入使用,突然某一天原作者直接把该库下架了,那其他开发者项目就彻底炸了。

有谁清楚这个发布规则呢,这个和npm 三方库发布中心 规则不太一样呢。


更多关于HarmonyOS鸿蒙Next中ohpm发布的三方库卸载规则是怎样的呢的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

【解决方案】

开发者你好,unpublish命令不会直接下架目标三方库,避免因为依赖关系导致其他的库也不可用,若有依赖关系则无法被删除,会打上deprecated的标签。,OHPM和NPM的规则参考以下:

  • OHPM核心规则:

    1.发布规则:

    前置要求:发布前需在开发者平台完成账号注册、生成并配置SSH公私钥、获取发布码。

    包格式与内容:仅支持.har或由HSP模块打包的.tgz格式。包内必须包含oh-package.json5、README.md、LICENSE和CHANGELOG.md四个文件,且后三个文件内容不能为空。

    唯一性与版本:包名与版本号的组合在仓库中必须唯一,一旦发布成功,即使后续下架,该版本号也永久不可再用。

    安全审核:提交后必须经过官方人工审核才能上架。审核包括自动化工具扫描(检查安全漏洞、恶意软件、敏感信息等)和人工功能复审。

    2.下架规则:

    命令操作:使用ohpm unpublish命令。若下架所有版本,需添加-f参数,且下架后24小时内不能发布同名新包。

    依赖影响:如果包被其他库依赖,则不会被删除,只会标记为“deprecated”;若无依赖,则会被直接删除。

    不可逆性:下架的特定版本号将永久失效,后续更新必须使用新版本号。

  • NPM核心规则:

    作为对照,NPM的核心规则特点是:

    发布:流程简单,通常只需npm publish。无官方前置审核,主要依赖社区自我管理和事后报告。

    下架:政策严格。发布72小时后,原则上不允许下架,除非涉及安全、法律等严重问题。下架后,包名和版本号在一定条件下可能被释放重用。

更多关于HarmonyOS鸿蒙Next中ohpm发布的三方库卸载规则是怎样的呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


对呀。我的意思我的库就没有被其它库依赖。我就可以直接强制删除啊 。那还是会给用户造成损失吧,

ohpm install是下载到本地,如果下架了其他人就install不了了。之前install也不会影响。麻烦问下您是什么场景下需要强制删除下架呀?

怎么不会受影响?,你把缓存全清了,别人都把库下架了,你重新ohpm install 你会成功? 项目都运行不起来了。,

这的确是个问题,啥时候deveco studio的缓存一清,项目运行不起来了🤣,得满世界找har了,

publish是要审核的,那unpublish也要审核的吧?(我不清楚没做过unpublish),你试过成功下架过库吗?

下架成功后还能找到原来的har吗?

ohpm unpublish demo@1.0.0 -f

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-unpublish-V5

不需要审核,可以强制下架成功,下架成功肯定找不到har包啊,

这个和强大的NPM社区三方库 发布规则不一样啊

作者有权下架,已经载入项目使用的用户不受影响。

谁给你说的?怎么不会受影响?,你把缓存全清了,别人都把库下架了,你重新ohpm install 你会成功? 项目都运行不起来了。 不收影响只有一种情况吧,就是你把人家的源码直接通过har 包的形式放在了本地进行的源码依赖。这个才不会受影响。,

ohpm卸载三方库时,若该库被其他库依赖,会询问是否同时卸载依赖库。若选择是,则全部卸载;若选择否,则终止操作。卸载后,相关配置信息会从oh-package.json5中移除。

在HarmonyOS Next中,ohpm(OpenHarmony Package Manager)对三方库的发布和卸载有明确的规则和限制,以保障生态的稳定性。

主要规则如下:

  1. 72小时规则:新发布的包版本在72小时内,作者可以执行 ohpm unpublish 命令将其下架。这为作者提供了一个纠错窗口,例如发布时包含了敏感信息或存在严重漏洞。

  2. 72小时后限制:超过72小时后,通常无法再直接下架(unpublish)已发布的版本。这是保护下游依赖项目的关键机制,防止因库突然消失导致项目构建失败。

  3. 废弃(Deprecate)机制:对于已稳定使用的版本,官方推荐的做法不是下架,而是使用 ohpm deprecate 命令将特定版本标记为“废弃”。这会在用户安装时给出警告,提示该版本已不再维护或存在风险,引导用户升级到新版本。这是一种负责任的、对生态友好的做法。

  4. 强制下架(-f)的适用场景unpublish -f 通常仅用于处理极端情况,例如:

    • 包内容涉及法律侵权、恶意代码等严重违规。
    • 在72小时窗口期内紧急撤下。
    • 可能需要联系ohpm官方管理员进行特殊处理,而非作者随意执行。

结论: 你的观察在72小时窗口期内是成立的,但长期来看,ohpm的规则旨在防止你描述的“库突然消失导致项目炸了”的情况。一旦超过72小时,已发布的稳定版本应通过标记“废弃”来管理,而非直接删除。这与其他主流包管理器(如npm)为保护生态而制定的策略是相似的。你可以放心,通过ohpm install的依赖具有长期可用性保障。

回到顶部