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