如何删除cordova-plugin-compat?

问题描述 投票:0回答:7

在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-geolocation),跳过卸载。 (尝试--force如果 正在尝试更新)

如果我尝试

--force
删除,它会起作用,插件被删除,我可以构建我的 Android 应用程序。

但是,我刚刚删除了我的

iOS
平台并再次添加它,我现在面临错误

cordova 准备 ios 错误:找不到插件“cordova-plugin-compat”的plugin.xml。请尝试重新添加。

[ERROR] 运行 cordova prepare ios 时发生错误(退出代码 1).

知道我做错了什么吗?真的应该删除

cordova-plugin-compat
吗?为什么我的iOS平台引用了它,我以为它只适用于android?

我使用 [电子邮件受保护][电子邮件受保护]

P.S.:如果我删除并添加 iOS 平台,compat 插件会自动添加为 package.json 和 package-lock.json 中的参考

更新

最后一个插件版本(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 cordova-plugins cordova-ios
7个回答
8
投票

问题的根源在于插件直接引用了

cordova-plugin-compat

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

问题的解决办法就是等待新版本或者提交PR去除依赖。

就我而言,有一些插件正在引用

cordova-plugin-compat

错误:需要插件“cordova-plugin-compat” (科尔多瓦插件日历,科尔多瓦插件相机,科尔多瓦插件文件, cordova-plugin-geolocation),跳过卸载。 (尝试--force如果 正在尝试更新)

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

[email protected]
[email protected]
[email protected]
删除了依赖项(请参阅https://cordova.apache.org/news/2017/11/10/plugins-release.html

[email protected]
通过此 PR 删除了依赖项 https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/pull/430


2
投票

对我来说,修复的方法是通过 Android Studio 更新 Android SDK,然后运行:

cordova plugin rm cordova-plugin-compat --force
cordova platform rm android
cordova platform add [email protected]

希望对某人有帮助!


0
投票

cordova-plugin-compat 仅适用于 Android,因此它不会导致 iOS 错误。我建议尝试清理你的 Cordova 项目。

删除以下目录:plugins、platforms、node_modules。他们将被重新创造

然后执行:

cordova platform add android
cordova platform add ios
cordova prepare # usually made by commands above but juste in case
cordova compile

0
投票

您可能有另一个需要 compat 插件的插件。检查你的插件的 package.json 来了解这一点。


0
投票

我对 cordova-plugin-file 有同样的问题,现在有解决方案吗?

https://forum.ionicframework.com/t/cordova-plugin-file-cordova-android-6-3-0-build-error/110682


0
投票

删除早于1.2版本的插件兼容性

$ cordova plugin rm cordova-plugin-compat --force

然后添加版本1.2

$ cordova plugin add [email protected]

这对我来说效果非常好!


0
投票

就我而言,我什至不需要删除

cordova-plugin-compat
,因为 它包含在 Cordova 6.3 中。然后,需要它作为依赖项的插件仍然可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.