如何删除 cordova-plugin-compat?
How to remove 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)
如果我随后尝试 --force
删除,它会起作用,插件已删除,我可以构建我的 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[=22 中的参考=]
更新
最后一个插件版本 (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 通过了,我能够在没有 "force"
的情况下删除最后一个插件
cordova-plugin-compat 仅适用于 Android,因此它不会导致 iOS 出错。我建议尝试清理您的 Cordova 项目。
删除以下目录:插件、平台,node_modules。它们将被重新创建
然后执行:
cordova platform add android
cordova platform add ios
cordova prepare # usually made by commands above but juste in case
cordova compile
您可能有另一个插件需要兼容插件。为此,请检查您的插件 package.json。
我和 cordova-plugin-file 有同样的问题,现在有解决方案吗?
https://forum.ionicframework.com/t/cordova-plugin-file-cordova-android-6-3-0-build-error/110682
对我来说,修复的是通过 Android Studio 更新 Android SDK,然后 运行:
cordova plugin rm cordova-plugin-compat --force
cordova platform rm android
cordova platform add android@6.3.0
希望对某人有所帮助!
问题的根源是插件直接引用 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
删除早于 1.2 版的插件兼容性
$ cordova plugin rm cordova-plugin-compat --force
然后添加版本 1.2
$ cordova plugin add cordova-plugin-compat@1.2
这对我来说效果很好!
在 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)
如果我随后尝试 --force
删除,它会起作用,插件已删除,我可以构建我的 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[=22 中的参考=]
更新
最后一个插件版本 (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 通过了,我能够在没有 "force"
cordova-plugin-compat 仅适用于 Android,因此它不会导致 iOS 出错。我建议尝试清理您的 Cordova 项目。
删除以下目录:插件、平台,node_modules。它们将被重新创建
然后执行:
cordova platform add android
cordova platform add ios
cordova prepare # usually made by commands above but juste in case
cordova compile
您可能有另一个插件需要兼容插件。为此,请检查您的插件 package.json。
我和 cordova-plugin-file 有同样的问题,现在有解决方案吗?
https://forum.ionicframework.com/t/cordova-plugin-file-cordova-android-6-3-0-build-error/110682
对我来说,修复的是通过 Android Studio 更新 Android SDK,然后 运行:
cordova plugin rm cordova-plugin-compat --force
cordova platform rm android
cordova platform add android@6.3.0
希望对某人有所帮助!
问题的根源是插件直接引用 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
删除早于 1.2 版的插件兼容性
$ cordova plugin rm cordova-plugin-compat --force
然后添加版本 1.2
$ cordova plugin add cordova-plugin-compat@1.2
这对我来说效果很好!