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
对呀。我的意思我的库就没有被其它库依赖。我就可以直接强制删除啊 。那还是会给用户造成损失吧,
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
ohpm install是下载到本地,如果下架了其他人就install不了了。之前install也不会影响。麻烦问下您是什么场景下需要强制删除下架呀?
怎么不会受影响?,你把缓存全清了,别人都把库下架了,你重新ohpm install 你会成功? 项目都运行不起来了。
这的确是个问题,啥时候deveco studio的缓存一清,项目运行不起来了🤣,得满世界找har了,
publish是要审核的,那unpublish也要审核的吧?(我不清楚没做过unpublish),你试过成功下架过库吗?
下架成功后还能找到原来的har吗?
这个和强大的NPM社区三方库 发布规则不一样啊
作者有权下架,已经载入项目使用的用户不受影响。
谁给你说的?怎么不会受影响?,你把缓存全清了,别人都把库下架了,你重新ohpm install 你会成功? 项目都运行不起来了。 不收影响只有一种情况吧,就是你把人家的源码直接通过har 包的形式放在了本地进行的源码依赖。这个才不会受影响。
鸿蒙Next中ohpm三方库下架规则如下:
- 违反法律法规或平台政策;
- 存在严重安全漏洞;
- 侵犯知识产权;
- 长期未维护且无法正常使用;
- 经投诉核实存在违规内容。
下架后库将不可搜索和安装,已安装项目不影响使用。
在HarmonyOS Next的ohpm(OpenHarmony Package Manager)生态中,三方库的下架规则确实与npm等包管理器存在差异,这主要是为了在开发者自由与生态稳定性之间寻求平衡。
根据当前ohpm的规则,库作者确实拥有通过ohpm unpublish命令下架(unpublish)自己发布的库或特定版本的权限。这是为了保障作者对其作品的基本管理权,例如在发现严重安全漏洞或版权问题时能够及时撤回。
然而,这种能力并非没有限制。ohpm的设计遵循以下原则来保护使用者:
- 版本锁定与本地缓存:当开发者通过
ohpm install将某个特定版本的三方库引入项目时,该版本的代码会被下载到项目的oh_modules目录中并锁定。即使作者后续从中心仓下架了这个版本,已经本地存在的依赖不会受到影响,项目构建依然可以基于本地缓存正常进行。 - 依赖声明固化:项目的
oh-package.json5文件会精确记录所依赖的库名称和版本号。这确保了项目构建环境的可重现性。只要本地或团队内部缓存存在,下架操作不会导致现有项目立即“炸掉”。 - 生态治理与规范:虽然技术上允许下架,但ohpm鼓励开发者遵循开源软件的最佳实践。无故下架已被广泛使用的库,会被视为破坏生态信任的行为。对于恶意或大规模破坏性下架,生态治理方可能会介入处理。
因此,你的担忧可以部分缓解:
- 对于正在开发中的项目,依赖的版本在首次安装后已本地化,下架不影响现有代码。
- 对于全新环境(如CI/CD流水线、新同事克隆项目),如果依赖的版本已被下架且无法从中心仓获取,则会安装失败。此时,团队需要依赖内部共享的缓存(如私有仓库、本地目录共享)来解决。
长远来看,对于极其重要、被广泛依赖的核心库,建议:
- 作者采用废弃(Deprecate) 而非直接下架的方式,引导用户迁移到新版本或替代库。
- 使用者对于关键依赖,可以考虑在项目内部分叉(fork)或锁定版本后提交到内部仓库进行托管,以完全控制供应链。
总结:ohpm赋予了作者下架权限,但通过版本锁定和本地缓存机制,避免了对已构建项目的直接破坏。生态的健康运行最终依赖于开发者的共同维护和负责任的操作。


