当前位置 : 主页 > 手机开发 > cordova >

如何删除cordova-plugin-compat?

来源:互联网 收集:自由互联 发布时间:2021-06-10
在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- android 6.3.0( https://cordova.apache.org/announcements/2017/09/27/android-release.html)的发行说明中,记下了cordova-plugin-compat必须删除

如果我试试

cordova plugin rm cordova-plugin-compat

我得到以下错误

[ERROR] An error occurred while running cordova plugin remove
cordova-plugin-compat –save (exit code 1):

Error: The plugin ‘cordova-plugin-compat’ is required by
(cordova-plugin-calendar, cordova-plugin-camera, cordova-plugin-file,
cordova-plugin-geolocation), skipping uninstallation. (try –force if
trying to update)

如果我然后尝试 – 强制删除,它工作,插件被删除,我能够构建我的Android应用程序.

但是,我刚刚删除了我的iOS平台再次添加它,我现在面对错误

cordova prepare ios Error: Cannot find plugin.xml for plugin “cordova-plugin-compat”. Please try adding it again.

[ERROR] An error occurred while running cordova prepare ios (exit code
1).

知道我做错了什么吗?应该删除真的cordova-plugin-compat吗?为什么我的iOS平台引用它,我以为它只适用于Android?

我使用cordova-android@6.3.0和cordova-ios@4.5.1

P.S.:如果我删除并添加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已经通过,我能够删除这个最后一个插件而没有“强制”

问题的根源是插件直接引用了cordova-plugin-compat.

因此,即使不推荐使用插件,仍然需要它.强制删除(使用–force)不是解决方案,因为如果我再次删除并添加了一个平台,那么,由于这些引用,插件’cordova-plugin-compat’会在该过程中自动添加.

然后问题的解决方案是等待新版本或提交PR以删除依赖项.

在我的例子中有插件引用cordova-plugin-compat:

Error: The plugin ‘cordova-plugin-compat’ is required by
(cordova-plugin-calendar, cordova-plugin-camera, cordova-plugin-file,
cordova-plugin-geolocation), skipping uninstallation. (try –force if
trying to update)

更新以下插件解决了我的问题:

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

网友评论