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
【解决方案】
开发者你好,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吗?
这个和强大的NPM社区三方库 发布规则不一样啊
作者有权下架,已经载入项目使用的用户不受影响。
谁给你说的?怎么不会受影响?,你把缓存全清了,别人都把库下架了,你重新ohpm install 你会成功? 项目都运行不起来了。 不收影响只有一种情况吧,就是你把人家的源码直接通过har 包的形式放在了本地进行的源码依赖。这个才不会受影响。,
ohpm卸载三方库时,若该库被其他库依赖,会询问是否同时卸载依赖库。若选择是,则全部卸载;若选择否,则终止操作。卸载后,相关配置信息会从oh-package.json5中移除。
在HarmonyOS Next中,ohpm(OpenHarmony Package Manager)对三方库的发布和卸载有明确的规则和限制,以保障生态的稳定性。
主要规则如下:
-
72小时规则:新发布的包版本在72小时内,作者可以执行
ohpm unpublish命令将其下架。这为作者提供了一个纠错窗口,例如发布时包含了敏感信息或存在严重漏洞。 -
72小时后限制:超过72小时后,通常无法再直接下架(unpublish)已发布的版本。这是保护下游依赖项目的关键机制,防止因库突然消失导致项目构建失败。
-
废弃(Deprecate)机制:对于已稳定使用的版本,官方推荐的做法不是下架,而是使用
ohpm deprecate命令将特定版本标记为“废弃”。这会在用户安装时给出警告,提示该版本已不再维护或存在风险,引导用户升级到新版本。这是一种负责任的、对生态友好的做法。 -
强制下架(-f)的适用场景:
unpublish -f通常仅用于处理极端情况,例如:- 包内容涉及法律侵权、恶意代码等严重违规。
- 在72小时窗口期内紧急撤下。
- 可能需要联系ohpm官方管理员进行特殊处理,而非作者随意执行。
结论: 你的观察在72小时窗口期内是成立的,但长期来看,ohpm的规则旨在防止你描述的“库突然消失导致项目炸了”的情况。一旦超过72小时,已发布的稳定版本应通过标记“废弃”来管理,而非直接删除。这与其他主流包管理器(如npm)为保护生态而制定的策略是相似的。你可以放心,通过ohpm install的依赖具有长期可用性保障。


