Irgendwie sind in meiner App viele der Cordova-Plugins installiert, weshalb auf fast alles zugegriffen werden muss - von meinen Kontakten bis zum aktuellen Standort (obwohl diese App dies nicht benötigt).
Diese App wird über Jenkins erstellt. Soweit ich weiß, besteht eine Lösung darin, jedes Plugin mit einem einzigen Befehl zu entfernen. Es wird also so aussehen:
cordova plugin rm org.Apache.cordova.battery-status
cordova plugin rm org.Apache.cordova.camera
cordova plugin rm org.Apache.cordova.contacts
cordova plugin rm org.Apache.cordova.geolocation
cordova plugin rm org.Apache.cordova.media
cordova plugin rm org.Apache.cordova.media-capture
cordova plugin rm org.Apache.cordova.splashscreen
cordova plugin rm org.Apache.cordova.vibration
Aber manchmal zeigt es einige Fehler und bei Jenkins endet ein Fehler mit dem Build-Fehler. Gibt es einen Befehl, der alle Plugins löscht? (Während der Installationsgrundlagen werden Plugins, für die eine App erforderlich ist, automatisch über Cordova hinzugefügt. Daher habe ich nach cordova plugin rm -all
gesucht, konnte sie aber nicht finden.)
Zuerst sollten Sie Ihre Plugins auflisten:
cordova plugin list
Mit diesem Ergebnis können Sie einfach Folgendes tun:
cordova plugin remove <PLUGIN_NAME>
Zum Beispiel:
cordova plugin remove org.Apache.cordova.media
Ich hoffe es hilft.
Sie können dies auch mit bash tun (nachdem Sie in Ihr Cordova-Projektverzeichnis gewechselt sind):
for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
Vom Terminal (osx) benutze ich normalerweise
cordova plugin -l | xargs cordova plugins rm
Pfeife, Pfeife alles!
Um ein wenig zu erweitern: Dieser Befehl wird die Ergebnisse von cordova plugin -l
durchlaufen und an cordova plugins rm
weiterleiten.
xargs ist einer dieser Befehle, bei denen Sie sich fragen, warum Sie zuvor nichts davon wussten. Siehe dieses Tut.
Sie könnten Folgendes verwenden: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm
und cordova plugins list
verwenden, um zu überprüfen, ob alle Plugins entfernt wurden.
mit v2.0.0 von cordova-check-plugins können Sie alle Plugins in einem Projekt entfernen:
$ npm install -g cordova-check-plugins
$ cordova-check-plugins --remove-all
Es wird versucht, die Cordova-CLI zu verwenden, um jedes Plugin zu entfernen, aber wenn dies fehlschlägt, wird das Plugin von platforms/
und plugins/
entfernt.
Wenn Sie auch aus config.xml entfernen möchten, verwenden Sie:
$ cordova-check-plugins --remove-all --save
Haftungsausschluss: Ich bin der Autor von Cordova-Check-Plugins
Ich mache es mit diesem Python-Einzeiler:
python -c "import subprocess as sp;[sp.call('cordova plugin rm ' + p.split()[0], Shell=True) for p in sp.check_output('cordova plugin', Shell=True).split('\n') if p]"
Offensichtlich werden keine Fehlerbedingungen behandelt, aber die Arbeit wird erledigt.
Dies ist die Befehlszeile zum Entfernen von Plugins in Cordova
cordova plugin remove <pluginid>
Zum Beispiel lief ich cordova plugin
und bekam eine Liste von Plugins. Dann benutzte ich die ID, um das Plugin zu deinstallieren
cordova plugin remove com.monday.contact-chooser
Sie können Hilfe in der Befehlszeile erhalten, indem Sie eingeben
cordova help <command>
Soweit ich mich an Cordova erinnere, sollten Sie eine XML-Datei im Ordner "res" haben, die die Liste der in Ihrem Projekt verwendeten Plugins enthält. Möglicherweise müssen Sie diese nicht verwendeten Plugins aus der Liste entfernen. Außerdem sollten Sie verwandte Dateien entfernen.
Skripts, die auf der Verarbeitung der Liste installierter Plugins basieren, funktionieren möglicherweise nicht, da zwischen installierten Plugins Abhängigkeiten bestehen (z. B. Cordova-Plugin-Datei und Cordova-Plugin-Dateiübertragung).
Im Beispiel wird das Skript das Datei-Plugin zuerst finden, dann versuchen, es zu entfernen, und es wird ein Fehler angezeigt, da die Dateiübertragung dies erfordert. Deshalb werden wir haben
Stellen Sie beim Ausführen des Befehls: cordova plugin remove <PLUGIN NAME>
sicher, dass Sie die Versionsnummer nicht zum Plugin-Namen hinzufügen. Nur einfacher Plugin-Name, zum Beispiel:
cordova plugin remove cordova.plugin_name
und nicht:
cordova plugin remove cordova.plugin_name 0.01
oder
cordova plugin remove "cordova.plugin_name 0.01"
Falls ein Privileg-Problem vorliegt, führen Sie Sudo aus, wenn Sie sich auf einem * nix-System befinden. Beispiel:
Sudo cordova plugin remove cordova.plugin_name
Dann können Sie --save hinzufügen, um es aus der Datei config.xml zu entfernen. Zum Beispiel:
cordova plugin remove cordova.plugin_name --save
Wenn die oben genannte Lösung nicht funktioniert hat und Sie eine unhandliche Ablehnung des Versprechens erhalten haben, führen Sie die folgenden Schritte aus:
Reinigen Sie das Cordova-Projekt
cordova sauber
cordova-Plattform entfernen Android/iOS
cordova-Plugin entfernen
cordova platform rm Android
cordova plugin rm cordova-plugin-firebase
cordova platform add Android
Sollte gut sein!