作者:CJT--陳嘉婷 | 来源:互联网 | 2023-01-15 16:33
在cordova-android 6.3.0(https://cordova.apache.org/announcements/2017/09/27/android-release.html)的发行说明中,记下cordova-plugin-compat
了必须删除的内容
如果我试试
cordova plugin rm cordova-plugin-compat
我得到以下错误
[错误]运行cordova插件时发生错误删除cordova-plugin-compat --save(退出代码1):
错误:插件'cordova-plugin-compat'需要(cordova-plugin-calendar,cordova-plugin-camera,cordova-plugin-file,cordova-plugin-geolocation),跳过卸载.(如果尝试更新,请尝试--force)
如果我然后尝试--force
删除,它的工作,插件被删除,我能够构建我的Android应用程序.
但是,我刚刚删除了我的iOS
平台再次添加它,我现在面对错误
cordova准备ios错误:找不到插件"cordova-plugin-compat"的plugin.xml.请尝试重新添加.
[错误]运行cordova prepare ios时出错(退出代码1).
知道我做错了什么吗?应该真的cordova-plugin-compat
被删除?为什么我的iOS平台引用它,我以为它只适用于Android?
我使用cordova-android@6.3.0和cordova-ios@4.5.1
PS:如果我删除并添加iOS平台,compat插件会自动添加为package.json和package-lock.json中的参考
UPDATE
最后一个插件发布(https://cordova.apache.org/news/2017/11/10/plugins-release.html)最有可能分别解决这个问题,看起来问题是cordova-plugin-compat
从其他插件引用插件.但,
我还没有完全测试它并解决它,因为我正在使用另一个插件,其中也引用了compat(https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/issues/426).
我将保持这个线程打开,直到我能100%确认这解决了compat的引用.
最终更新
从Calendar-PhoneGap-Plugin
'cordova-plugin-compat' 删除依赖关系的PR 通过,我能够删除这个最后一个插件没有"强制"
1> David Dal Bu..:
问题的根源是插件直接引用cordova-plugin-compat
.
因此,即使不推荐使用插件,仍然需要它.强制删除(使用--force)不是解决方案,因为如果我再次删除并添加了一个平台,那么,由于这些引用,插件'cordova-plugin-compat'会在该过程中自动添加.
然后问题的解决方案是等待新版本或提交PR以删除依赖项.
在我的情况下,有引用的插件cordova-plugin-compat
:
错误:插件'cordova-plugin-compat'需要(cordova-plugin-calendar,cordova-plugin-camera,cordova-plugin-file,cordova-plugin-geolocation),跳过卸载.(如果尝试更新,请尝试--force)
更新以下插件解决了我的问题:
cordova-plugin-camera@3.0.0
,cordova-plugin-file@5.0.0
并cordova-plugin-geolocation@3.0.0
删除了依赖(请参阅https://cordova.apache.org/news/2017/11/10/plugins-release.html)
cordova-plugin-calendar@5.0.0
通过此PR删除了依赖关系
https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/pull/430