目录

ohpm install下载三方库时报错

问题现象

执行ohpm install XXX命令下载库失败。

fetch meta info of package '@mpaas/antui' failed - GET https://repo.harmonyos.com/ohpm/@mpaas/antui 404( Not Found )

背景知识

解决方案

  1. 排查.ohpmrc中是否配置了正确的中心仓地址。

    项目级配置文件:/path/to/my/project/.ohpmrc。

    用户级配置文件:

    MacOS默认位置:~/.ohpm/.ohpmrc。

    windows操作系统默认位置:C:\Users\用户名\.ohpm\.ohpmrc。

    仓库配置,支持配置多个地址,使用英文逗号分隔。

    registry=https://ohpm.example.com/ohpm,https://repo.example.com/ohpm
  2. 若无法访问中心仓,需要确认当前网络连接是否正常,保证可以访问公网。
  3. 排查网络代理问题,如网络环境需要使用代理,ohpm代理信息,在http_proxy和https_proxy中,将user、password、proxyserver和port按照实际代理服务器进行修改。
    http_proxy=http://用户名:密码@域名或IP:端口
    https_proxy=http://用户名:密码@域名或IP:端口

    如果password中存在特殊字符,如@、#、*等符号,可能导致配置不生效,建议将特殊字符替换为ASCII码,并在ASCII码前加百分号%。常用符号替换为ASCII码对照表如下:

    特殊符号

    ASCII码

    !

    %21

    @

    %40

    #

    %23

    $

    %24

    &

    %26

    *

    %2A

  4. 确认以上配置成功后,正常就可以下载OpenHarmony三方库中心仓中的库,但是如果想要下载的库没有上传到官方中心仓,例如阿里云的mPaas,需要在.ohpmrc中根据group指定组织的仓库地址。支持多个仓库地址,以英文逗号间隔,且优先级大于registry配置,多个仓库地址的优先级按照配置顺序排序。

    registry=https://ohpm.example.cn/ohpm,https://repo.example.com/ohpm

    指定仓库地址

    @mpaas:registry=https://mpaas-ohpm.example.com/meta

  5. ohpm默认忽略SSL证书校验,如果需要开启,则需要在.ohpmrc中配置有效的证书路径,否则也会导致下载失败。

    strict_ssl=true

    ca_files=/path/to/cert

常见FAQ

Q:执行ohpm install安装依赖成功,但是没看到安装的依赖。

A:注意执行ohpm install的路径,oh-package.json5分为模块级和工程级,需要在执行安装命令的路径下查看oh-package.json5和oh_modules。

Q:显示connect ETIMEDOUT连接超时是什么原因?怎么解决?

A:ETIMEDOUT表示客户端在尝试连接远程服务器时,在指定时间内未能建立连接。具体可能原因和解决方法如下,开发者可以按序排查:

  1. 代理配置问题:
  1. 网络与连接问题:
    • 网络不通或不稳定:

      表现:ping ohpm.openharmony.cn超时,curl请求失败。

      解决方案:切换网络(如改用手机热点)。

    • 防火墙或安全软件拦截:

      表现:即使网络正常,仍无法连接。

      解决方案:临时关闭防火墙或杀毒软件测试。

  1. 服务端与本地环境问题:
    • ohpm服务端暂时不可用:

      表现:https://ohpm.openharmony.cn无法打开,或返回5xx/4xx错误。

      解决方法:建议稍后重试。

    • ohpm本地缓存损坏:

      表现:重复报错,清理后恢复正常。

      解决方法:运行指令:ohpm cache clean。