2017-10-03 2 views
4

Dans les notes de version de 6.3.0 cordova-android (https://cordova.apache.org/announcements/2017/09/27/android-release.html), il est écrit que cordova-plugin-compat doit être retiréComment supprimer cordova-plugin-compat

Si je tente

cordova plugin rm cordova-plugin-compat 

je suis l'erreur suivante

[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)

Si je puis essayer de supprimer le --force, cela fonctionne, le plugin est supprimé et je suis capable de construire mon application Android.

MAIS, je viens enlevé ma plate-forme iOS pour l'ajouter à nouveau et je fais face maintenant l'erreur

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).

Toute idée de ce que je fais mal? Devrait vraiment cordova-plugin-compat être supprimé? Pourquoi ma plate-forme iOS fait-elle référence, je pensais que c'était seulement pour Android?

J'utilise [email protected] et [email protected]

PS: Si je supprime et ajoute la plate-forme iOS, le plug-in compat est automatiquement ajouté comme référence dans package.json et emballage -lock.json

mISE à JOUR

la dernière version du plug-in (https://cordova.apache.org/news/2017/11/10/plugins-release.html) résoudre le plus probablement cette question respectivement comme il semble que le problème était la référence au plug-in cordova-plugin-compat d'autres plug-in. Mais,

Je ne suis pas encore capable de le tester totalement et de le résoudre car j'utilise un autre plugin où compat est également référencé (https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/issues/426).

Je vais garder ce fil ouvert jusqu'à ce que je pourrais confirmer à 100% que cela résout le référencement de compat.

FINAL MISE À JOUR

Le PR pour supprimer la dépendance de Calendar-PhoneGap-Plugin à 'cordova-plugin-compat' est allé à travers, j'ai pu supprimer ce dernier plug-in sans "forcer"

Répondre

1

La source du problème était que les plugins faisaient directement référence à cordova-plugin-compat.

Par conséquent, même si l'utilisation du plugin était déconseillée, il était toujours nécessaire. Forcer une suppression (en utilisant --force) n'était pas une solution, car si je supprimais et rajoutais une plate-forme, à cause de ces références, le plugin 'cordova-plugin-compat' était automatiquement ajouté à nouveau pendant ce processus.

La solution du problème était alors d'attendre de nouvelles versions ou de soumettre des relations publiques pour supprimer la dépendance.

Dans mon cas, il y avait les plugins qui ont été REFERENCEMENT 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)

Mise à jour des plugins suivant a résolu mon problème:

[email protected], [email protected] et [email protected] enlevé la dépendance (voir https://cordova.apache.org/news/2017/11/10/plugins-release.html)

[email protected] supprimé la dépendance à travers ce PR https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/pull/430

0

Le cordova- plugin-compat est pour Android seulement, donc il ne devrait pas causer d'erreurs pour iOS. Je suggère d'essayer de nettoyer votre projet Cordova.

Supprimez les répertoires suivants: plugins, plates-formes, node_modules. Ils seront recréés

Ensuite, exécutez:

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

J'ai complètement supprimé les plugins compat et j'ai complètement retiré les deux plates-formes et je les ai ajouté à nouveau ce qui m'a conduit à l'erreur –

+0

Le plugin est-il toujours référencé dans package.json ou config.xml? – pom421

+0

config.xml Je suis sûr à 100% qu'il n'était plus référencé. package.json probablement mais je ne me souviens pas de le vérifier ... peut-être va essayer la semaine prochaine encore et double vérifier cela –

0

Vous avez probablement un autre plugin qui exige le plugin compat. Vérifiez le package.json de vos plugins pour cela.

+0

Oui bien sûr, l'avertissement dit que (cordova-plugin-calendrier, cordova-plugin-caméra, cordova-plugin-fichier, cordova-plugin-geolocation) mais compat est maintenant inclus dans cordova-android et les notes de publication indiquaient que compat devrait être enlevé –

2

Pour moi, ce qui le fixe a été mise à jour le SDK Android via Android Studio puis en cours d'exécution:

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

espoir qui aide quelqu'un!

+0

Est-ce que le même butit n'a pas fonctionné pour moi puisque certains des plugins que j'utilise référençant toujours directement le plugin compat –

+0

--force devrait le supprimer même s'il est utilisé par d'autres plugins (j'ai aussi eu le problème). Puis, quand le "platform add" les a rajoutés, il a essayé de rajouter le plugin, mais il a refusé le plugin à cause de la version de la plateforme. Cela a bien fonctionné pour moi, mais une différence que j'ai faite a été d'ajouter le mot ionique devant chacune des commandes, parce que j'utilise l'ionique. – Uniphonic

+0

Oui, je l'ai fait aussi et cela fonctionne pour Android, mais si vous supprimez/ajoutez la plate-forme iOS, le compat va être ajouté à nouveau, je pense –