Cordova“无法获取插件”错误

Posted

技术标签:

【中文标题】Cordova“无法获取插件”错误【英文标题】:Cordova "failed to fetch plugin" error 【发布时间】:2018-01-17 04:53:34 【问题描述】:

我最近经常遇到这个“无法获取插件错误”。如果我下载自己的分支似乎特别容易支撑:

t2wu@THW-air:~/Documents/Work/John/DEMO_APP/BCAppII(dev) $cordova 插件添加https://github.com/t2wu/cordova-plugin-geofence.git#t2wu

错误:无法获取插件 https://github.com/t2wu/cordova-plugin-geofence.git#t2wu 通过注册表。 可能这要么是连接问题,要么是插件规范 不正确。检查您的连接和插件名称/版本/URL。失败的 获取已安装模块的绝对路径

如果我下载了像cordova plugin add cordova-plugin-geofence 这样的插件,但是当我必须使用特定的存储库,尤其是该存储库上的分支时,它经常会失败。

我正在使用 Cordova 7.1.0。 (Cordova 8 还有其他一些我现在不想讨论的问题。)

【问题讨论】:

【参考方案1】:

尝试以下方法:

cordova plugin add https://github.com/t2wu/cordova-plugin-geofence.git#t2wu --nofetch

如果它不起作用。执行以下步骤:

    删除所有平台 (cordova platform rm android) 和 (cordova platform rm ios)

    删除所有插件cordova plugin rm plugin-name

    如果 step2 失败,则使用文件管理器从目录 <projectroot>/plugins 中删除所有插件

    添加所有插件

    添加https://github.com/t2wu/cordova-plugin-geofence.git#t2wu

    添加所有平台。

【讨论】:

【参考方案2】:

对于遇到此问题的任何人, 事实证明,每次 repo 名称与插件 ID 不匹配时,cordova 都会尝试通过注册表获取。 我能够从私人 bitbucket 安装插件,只需更改 repo 名称即可

【讨论】:

您更改的这个 repo 名称在哪里? 私人仓库遇到同样的错误...那么,如何解决呢?应该更改哪些名称以及在哪里更改? 这是 package.json 文件,名为“cordova”的部分,属性为“id”,应该与 plugin.xml 中的 id 匹配。请确保在构建时(例如在流星上)也清除科尔多瓦缓存。同意,这是一个解决方案。【参考方案3】:

Cordova 10 和 Xcode 13 中,解决方案是编辑 <App>/plugins/fetch.json 并确保 id 与插件名称匹配。

"cordova-labs-local-webserver": 
"source": 
  "type": "registry",
  "id": "git+https://github.com/apache/cordova-plugins.git#local-webserver"

用插件名称更新 id

"cordova-labs-local-webserver": 
"source": 
  "type": "registry",
  "id": "cordova-labs-local-webserver"

【讨论】:

【参考方案4】:

我在执行platform add 命令之前运行npm install 时看到了这个问题。出于某种原因,这搞砸了一切,但如果我只是删除了npm install,它仍然是作为platform add 命令的一部分完成的。

【讨论】:

以上是关于Cordova“无法获取插件”错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cordova-Android 6.2.0 的 Cordova 错误 - getFileResources 不是函数

Cordova - Admob cordova 插件错误,黑色和空白广告

Cordova AdMob 插件 404 错误:http://registry.cordova.io/com.admob.AdmobPlugin

Cordova.js 错误

cordova windows 构建错误(未检测到所选目标的有效 MSBuild) - 检查所有 Cordova 要求

Cordova 添加平台 android 错误