Cordova-Plugins aus dem Projekt entfernen


103

Irgendwie sind in meiner App viele der Cordova-Plugins installiert und aus diesem Grund ist Zugriff auf fast alles erforderlich - 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.

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 jeder Fehler mit einem Build-Fehler. Gibt es also 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 einigen gesucht cordova plugin rm -all, diese aber nicht gefunden.)


1
Y würde empfehlen, ein Shell-Skript zu erstellen, das die Cordovaplugin-Liste aufruft und dann das Cordova-Plugin rm für jede zurückgegebene Zeile
ausführt

Ich kann so etwas nur durch Makefile machen. Und ich bin auch nicht so gut mit Unix-Kommandozeilen.
mmmm

Sie können versuchen, eine Anfrage im Cordova-Projekt zu füllen, um sie zu bitten, einen Befehl zum Entfernen aller Plugins hinzuzufügen ...
QuickFix

Ja, ich habe nicht so viel Zeit zu warten, bis sie einen neuen Befehl nur für mich hinzufügen.
mmmm

Antworten:


245

Zuerst sollten Sie Ihre Plugins auflisten:

cordova plugin list

Mit diesem Ergebnis können Sie einfach Folgendes tun:

cordova plugin remove <PLUGIN_NAME>

Beispielsweise:

cordova plugin remove org.apache.cordova.media

Ich hoffe es hilft.


Aus irgendeinem Grund listet mein VS2013-Projekt keine auf und das Entfernen funktioniert nicht. Gone to old fashion config.xml Bearbeitung und Plugin Ordner gelöscht ...
Anthony Horne

8
Der Typ bat um einen Befehl, um alle gleichzeitig zu löschen. Dies ist eine einfache dokumentierte Antwort, um jeweils nur eine zu entfernen.
Imon

8
besser, cordova plugin remove <PLUGIN_NAME> --savedamit es automatisch aus config.xml entfernt wird
kamayd

19

Sie können dies auch mit bash tun (nachdem Sie in Ihr Cordova-Projektverzeichnis gewechselt haben):

for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done

Hast du es getestet?
Hamid Araghi

11

Du könntest benutzen: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

und verwenden Sie cordova plugins list, um zu überprüfen, ob alle Plugins entfernt wurden.


Hat nicht funktioniert. Erhalten Sie den folgenden Fehler:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague versuchen Sie es manuell cordova plugins lsund prüfen Sie dann, ob Sie Plugins einzeln mit entfernen können cordova plugins rm plugin_name. Aufgrund des Fehlers sieht es so aus, als ob eines der Plugins in Ihrem Projekt nicht physisch vorhanden ist. Mit dieser Methode können Sie das Plugin finden.
Hamid Tavakoli

10

Mit v2.0.0 der 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 zum Entfernen jedes Plugins zu verwenden. Wenn dies jedoch fehlschlägt, wird das Entfernen des Plugins von platforms/und erzwungen plugins/.

Wenn Sie auch aus config.xml entfernen möchten, verwenden Sie:

$ cordova-check-plugins --remove-all --save

Haftungsausschluss: Ich bin Autor von Cordova-Check-Plugins


$ cordova-check-plugins --remove-all --save Alle Plugins entfernen ... -FATAL ERROR: Lokaler / globaler Cordova- oder globaler Phonegap-CLI-Befehl konnte nicht gefunden werden, wenn installierte Plugins aufgelistet wurden - stellen Sie sicher, dass das Cordova npm-Modul entweder lokal installiert ist in Ihrem Projektordner oder global. Fehler: Befehl fehlgeschlagen: phonegap -v 'phonegap' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt.
Naga

@Naga Sie müssen Cordova oder Phonegap in Ihrem globalen npm-Verzeichnis installiert haben, das durch die Standardpräfix-npm-Konfigurationsvariable oder was auch immer Sie in Ihren .npmrc / npmrc-Dateien festgelegt haben. Wahrscheinlich ist Ihre in, C:\Users\yourusername\AppData\Roaming\npmwenn Sie unter Windows oder /usr/localUNIX-Kernel laufen . Sie können herausfinden, was Ihr Präfix ist, indem Sie terminal / commandnpm config get prefix
NoodleOfDeath

9

Vom Terminal (osx) benutze ich normalerweise

cordova plugin -l | xargs cordova plugins rm

Pfeife, pfeife alles!

Um ein bisschen zu erweitern: Dieser Befehl durchläuft die Ergebnisse von cordova plugin -lund führt sie an cordova plugins rm.

xargs ist einer dieser Befehle, von denen Sie sich fragen, warum Sie vorher nichts wussten. Siehe dieses Tut.


1
Ab Cordova 9.0.0 funktioniert dies nicht mehr richtig, JVE999 funktioniert.
Bala Clark

4

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 Aufgabe wird erledigt.


Verwenden Sie einfach ein Shell-Skript. Wenn Cordova eine weitere Programmiersprache mit eigenen Abhängigkeiten in den Mix einfügt, wird das Chaos noch größer.
tfmontague

2

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. Sie müssen diese nicht verwendeten Plugins wahrscheinlich aus der Liste entfernen. Außerdem sollten Sie verwandte Dateien entfernen.


Ich habe keinen physischen Zugang zu diesem Sklaven. Kann nicht so gemacht werden.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
Fügen Sie Ihrer Antwort einen Kontext oder eine Erklärung hinzu.
Joey Phillips

1

Dies ist die Befehlszeile zum Entfernen von Plugins in Cordova

cordova plugin remove <pluginid>

Zum Beispiel lief ich cordova pluginund bekam eine Liste von Plugins, dann habe ich die ID für das Plugin zum Deinstallieren verwendet

cordova plugin remove com.monday.contact-chooser

Sie können Hilfe in der Befehlszeile erhalten, indem Sie eingeben

cordova help <command>


Cordova-Plugin entfernen com.monday.contact-chooser mit dem Fehler - Fehler: Das Plugin "Cordova-Plugin-Name" ist im Projekt nicht vorhanden. Siehe cordova plugin list.
S.Yadav

Bitte entfernen Sie Ihren Beitrag. Die Frage lautete: "Gibt es einen Befehl, der alle Plugins löscht?".
Montag,

1

Skripte, die auf der Verarbeitung der Liste der installierten Plugins basieren, funktionieren möglicherweise nicht, da Abhängigkeiten zwischen den installierten Plugins bestehen (z. B. Cordova-Plugin-Datei und Cordova-Plugin-Dateiübertragung).

In diesem Beispiel findet das Skript zuerst das Datei-Plugin, versucht dann, es zu entfernen, und es wird eine Fehlermeldung angezeigt, da die Dateiübertragung dies erfordert. Deshalb werden wir haben


Dies ist ein guter Punkt für Abhängigkeiten zwischen installierten Plugins. Ich denke, es gibt eine Force-Flagge --force, die das Plugin unabhängig davon entfernen würde ...
tfmontague

0

Stellen Sie beim Ausführen des Befehls: cordova plugin remove <PLUGIN NAME>sicher, dass Sie die Versionsnummer nicht zum Namen des Plugins hinzufügen. Einfach nur der Name des Plugins, 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"

Wenn es ein Berechtigungsproblem gibt, führen Sie es mit sudo aus, wenn Sie sich auf einem * nix-System befinden, zum Beispiel:

sudo cordova plugin remove cordova.plugin_name

Anschließend können Sie --save hinzufügen , um es aus der Datei config.xml zu entfernen. Beispielsweise:

cordova plugin remove cordova.plugin_name --save

0
  • Greifen Sie auf den Ordner zu
  • Liste der Plugins (Cordova Plugin Liste)
  • ionic cordova plugin entferne "pluginName"

Sollte gut sein!


0

Wenn die oben genannte Lösung nicht funktioniert hat und Sie eine unbehandelte Ablehnung von Versprechungen erhalten haben, versuchen Sie, die folgenden Schritte auszuführen:

  1. Reinigen Sie das Cordova-Projekt

    Cordova sauber

    1. Plattform entfernen

Cordova Plattform entfernen Android / iOS

  1. Dann Plugin entfernen

Cordova Plugin entfernen

  1. Plattformen hinzufügen und das Projekt ausführen Es hat bei mir funktioniert.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.