web-dev-qa-db-fra.com

Comment supprimer cordova-plugin-compat?

Dans les notes de publication de cordova-Android 6.3.0 ( https://cordova.Apache.org/announcements 2017/09/27/Android-release.html ), il est écrit que cordova-plugin-compat doit être supprimé.

Si j'essaye

cordova plugin rm cordova-plugin-compat

Je reçois l'erreur suivante

[ERREUR] Une erreur s'est produite lors de l'exécution du plug-in cordova remove cordova-plugin-compat --save (code de sortie 1):

Erreur: le plugin ‘cordova-plugin-compat’ est requis par (calendrier-plugin-cordova, caméra-plugin-cordova, fichier-plugin-cordova, cordova-plugin-geolocation), suppression de la désinstallation. (essayez --force si essayant de mettre à jour)

Si j'essaie ensuite de --force supprimer, cela fonctionne, le plug-in est supprimé et je suis capable de créer mon application Android.

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

cordova prepare ios Erreur: Impossible de trouver plugin.xml pour le plugin "cordova-plugin-compat". S'il vous plaît essayez de l'ajouter à nouveau.

[ERREUR] Une erreur s'est produite lors de l'exécution de cordova prepare ios (code de sortie 1).

Une idée de ce que je fais mal? Faut-il vraiment supprimer cordova-plugin-compat? Pourquoi ma plate-forme iOS fait-elle référence à cela, je pensais que c'était uniquement pour Android?

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

P.S .: Si je supprime et ajoute la plate-forme iOS, le plugin compat est automatiquement ajouté comme référence dans package.json et package-lock.json

METTRE À JOUR

La dernière version du plugin ( https://cordova.Apache.org/news/2017/11/10/plugins-release.html ) résoudra probablement ce problème, respectivement, il semblerait que le problème était la référence au cordova-plugin-compat plugin d'un autre plugin. 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 aussi référencé ( https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/issues/426 ) . 

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

FINAL UPDATE

Le PR qui a supprimé la dépendance de Calendar-PhoneGap-Plugin à ‘cordova-plugin-compat’ est passé, j’ai pu supprimer ce dernier plugin sans "force"

6
David Dal Busco

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 plug-in était obsolète, elle était toujours nécessaire. Forcer une suppression (avec --force) n’était pas une solution, car si je supprimais et ajoutais une plate-forme à nouveau, à cause de ces références, le plugin ‘cordova-plugin-compat’ était automatiquement ajouté à nouveau au cours de ce processus.

La solution du problème consistait alors à attendre les nouvelles versions ou à soumettre le PR pour supprimer la dépendance.

Dans mon cas, il y avait les plugins qui faisaient référence à cordova-plugin-compat:

Erreur: le plugin ‘cordova-plugin-compat’ est requis par (calendrier-plugin-cordova, caméra-plugin-cordova, fichier-plugin-cordova, cordova-plugin-geolocation), suppression de la désinstallation. (essayez --force si essayant de mettre à jour)

La mise à jour des plugins suivants a résolu mon problème:

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

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

6
David Dal Busco

Pour moi, la solution consistait à mettre à jour le SDK Android via Android Studio, puis à exécuter:

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

J'espère que ça aide quelqu'un!

2
Uniphonic

J'ai le même problème avec cordova-plugin-file. Existe-t-il une solution pour l'instant?

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

0

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

0
John Josef

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

Supprimez les répertoires suivants: plugins, plateformes, node_modules. Ils seront recréés

Puis exécutez:

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

supprimer le plugin compat plus ancien que la version 1.2

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

puis ajoutez la version 1.2

$ cordova plugin add [email protected]

Cela a bien fonctionné pour moi!

0
Mo Hafiz