HarmonyOS鸿蒙Next中@react-native-ohos/react-native-push-notification安装报错

HarmonyOS鸿蒙Next中@react-native-ohos/react-native-push-notification安装报错 【问题描述】:https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/zh-cn/react-native-push-notification.md 这个库在安装报错error Couldn’t find package “@react-native-ohos/react-native-push-notification” on the “npm” registry.

npm网站上面也搜不到这个库

【问题现象】:

cke_1566.png


更多关于HarmonyOS鸿蒙Next中@react-native-ohos/react-native-push-notification安装报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

尊敬的开发者,您好,此三方库react-native-push-notification目前已对外发布,请您重新运行下此命令:

npm install @react-native-ohos/react-native-push-notification

重新安装下相关依赖,如果还是不能解决您的问题,麻烦您提供下日志信息。

更多关于HarmonyOS鸿蒙Next中@react-native-ohos/react-native-push-notification安装报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我这边实测 npm 上存在该包,但当前只有 beta:npm view @react-native-ohos/react-native-push-notification versions --json 返回 8.1.2-beta.2。先确认 registry 是 https://registry.npmjs.org/,再安装:npm i @react-native-ohos/react-native-push-notification@8.1.2-beta.2。

地址是这个:[https://www.npmjs.com/package/@react-native-ohos/react-native-push-notification](https://www.npmjs.com/package/@react-native-ohos/react-native-push-notification)

你超前了。再试。

cke_143.png

你好,可按下面步骤,可以正确安装:

1、先查看当前的npm配置:

npm config list

2、切换回官方 npm 源:

npm config set registry https://registry.npmjs.org/

3、再重新安装:

npm install @react-native-ohos/react-native-push-notification

这个问题其实不是你安装姿势的问题,而是这个包大概率已经不存在了,或者文档写错了。

你现在安装的是:

npm install @react-native-ohos/react-native-push-notification

但 npm 已经明确返回 404:

404 '@react-native-ohos/react-native-push-notification@*' is not in this registry

我这边查了下,npm 上确实搜不到这个包。

目前 OpenHarmony / RN OHOS 生态里,推送相关并不是这个名字,很多老文档已经失效了,GitCode 上的一些 usage-docs 文档也有“仓库已迁移 / 包名变化 / 未发布到npm”的情况。

你这个文档:

https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/zh-cn/react-native-push-notification.md

里面引用的包名,应该是历史遗留名称。

目前实际存在的是:

@react-native-ohos/push-notification-ios

这个包 npm 上是能查到的。

但它其实只是 iOS push notification 兼容层,并不是完整的 react-native-push-notification OHOS 版本。

所以现在本质问题是:

  1. @react-native-ohos/react-native-push-notification 根本没有发布到 npm
  2. 文档已经过期
  3. OpenHarmony RN 的很多三方库实际上只在 GitCode/Gitee 存在源码,没有正式 npm 包
  4. 有些库需要:
    • 手动 git clone
    • 本地 file: 引用
    • 或者自己编译 bridge

不是直接 npm install 就能用

你可以先确认两件事:

第一种方案(推荐)

直接使用官方 HMS Push Kit,而不是 react-native-push-notification。

因为 RN OHOS 生态现在推送库维护情况比较一般,很多项目最后都是:

RN JS层
↓
TurboModule / NativeModule
↓
Harmony 原生 HMS Push Kit

自己桥接。

第二种方案

去 GitCode 找源码仓库,手动引入。

很多 OpenHarmony RN 库实际上要这样装:

"dependencies": {
  "@xxx/xxx": "file:./libs/xxx"
}

或者:

npm install git+https://xxxx.git

而不是 npm registry。

另外你这个报错和网络、npm源没有关系。

因为:

404 Not Found

说明 npm registry 里压根不存在这个包。

如果是网络问题一般会是:

ERR_SOCKET_TIMEOUT
ECONNRESET
500

不是 404。

建议你现在别继续折腾 npm 源了,没意义 😂

直接换思路:

  • 要么自己封装 HMS Push Kit
  • 要么换目前还在维护的 OHOS RN 推送方案
  • 要么直接找对应 GitCode 仓库源码手动接入

这个更靠谱。

之前该库可能仍处于开发或内部测试阶段,因此未在公共仓库上架。建议你访问OpenHarmony-RN的源码仓库,查看该库的 package.json 或发布页面,确认是否有可用的安装包(如 .tgz 文件)可供本地安装。

该报错通常因以下原因之一:

  1. @react-native-ohos/react-native-push-notification 依赖的 OHOS SDK 版本与当前鸿蒙Next不匹配。
  2. 缺少 ohpm 依赖配置(如 @ohos/push 模块未安装)。
  3. 未在 entry 模块的 module.json5 中声明推送权限。

请检查 oh-package.json5 中依赖版本,确保与鸿蒙Next兼容;确认已执行 ohpm install 并添加 ohos.permission.PUSH 权限。

该库[@react-native-ohos](/user/react-native-ohos)/react-native-push-notification并未发布到公共npm registry,因此直接安装会提示找不到。该库是OpenHarmony RN适配专有包,仅存在于OpenHarmony的私有npm仓库或对应的GitCode仓库中。

可通过以下两种方式安装:

  1. 配置npm私有源(推荐):在项目根目录.npmrc中添加:

    [@react-native-ohos](/user/react-native-ohos):registry=https://repo.harmonyos.com/npm/
    

    然后正常执行npm install

  2. 直接从GitCode安装:

    npm install git+https://gitcode.com/OpenHarmony-RN/react-native-push-notification.git
    

安装后按官方文档完成原生侧配置即可。

回到顶部