Suppression des plug-ins Cordova du projet


103

D'une manière ou d'une autre, dans mon application, de nombreux plugins cordova sont installés et pour cette raison, il faut accéder à presque tout - de mes contacts à l'emplacement actuel (même si cette application n'en a pas besoin).

Cette application est construite via jenkins et pour autant que je sache, une solution consiste à supprimer chaque plugin avec une seule commande, donc ce sera comme:

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

Mais parfois, il montre des erreurs et avec jenkins toute erreur se termine par un échec de construction, alors y a-t-il une commande qui supprime tous les plugins? (pendant l'installation, les plugins qui nécessitent le fonctionnement de toute application sont ajoutés automatiquement via cordova, donc j'en cherchais cordova plugin rm -allmais je ne pouvais pas les trouver)


1
Y recommanderait de construire un script shell qui appelle la liste cordovaplugin, puis fait le plugin cordova rm pour chaque ligne renvoyée
QuickFix

Je ne peux faire quelque chose comme ça via makefile. Et aussi je ne suis pas très bon avec la ligne de commande Unix.
mmmm

vous pouvez essayer de remplir une demande dans le projet cordova pour leur demander d'ajouter une commande pour supprimer tous les plugins ...
QuickFix

oui, eh bien je n'ai pas beaucoup de temps à attendre qu'ils ajoutent une nouvelle commande juste pour moi ..
mmmm

Réponses:


246

Tout d'abord, vous devez lister vos plugins:

cordova plugin list

Avec ce résultat, vous pouvez simplement faire:

cordova plugin remove <PLUGIN_NAME>

Par exemple:

cordova plugin remove org.apache.cordova.media

J'espère que ça aide.


Pour une raison quelconque, mon projet VS2013 n'en répertorie aucun et la suppression ne fonctionne pas. Gone to old fashion config.xml edit and plugin folder deletes ...
Anthony Horne

8
Le gars a demandé une commande pour tout supprimer à la fois. Il s'agit d'une simple réponse documentée pour n'en supprimer qu'un à la fois.
Imon

8
mieux vaut le faire cordova plugin remove <PLUGIN_NAME> --savepour qu'il soit automatiquement supprimé de config.xml
kamayd

19

Vous pouvez également le faire avec bash (après être passé dans le répertoire de votre projet Cordova):

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

L'avez-vous testé?
Hamid Araghi le

11

Vous pouvez utiliser: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

et utilisez cordova plugins listpour vérifier si les plugins sont tous supprimés.


Ça n'a pas marché. Obtenez l'erreur suivante:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague essayez de le faire manuellement cordova plugins ls, puis voyez si vous pouvez supprimer les plugins un par un en utilisant cordova plugins rm plugin_name. D'après l'erreur, il semble que l'un des plugins ne soit pas physiquement présent dans votre projet. En utilisant cette méthode, vous pouvez trouver ce plugin.
Hamid Tavakoli

10

La v2.0.0 de cordova -check-plugins vous permet de supprimer tous les plugins d'un projet:

$ npm install -g cordova-check-plugins
$ cordova-check-plugins --remove-all

Il tentera d'utiliser la CLI Cordova pour supprimer chaque plugin, mais si cela échoue, cela forcera la suppression du plugin de platforms/etplugins/ .

Si vous souhaitez également supprimer de config.xml, utilisez:

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

Clause de non-responsabilité: Je suis l'auteur de cordova-check-plugins


$ cordova-check-plugins --remove-all --save Suppression de tous les plugins ... -FATAL ERROR: Impossible de trouver la commande CLI locale / globale cordova ou globale phonegap lors de la liste des plugins installés - assurez-vous que le module cordova npm est installé localement dans votre dossier de projet ou globalement. Erreur: échec de la commande: phonegap -v 'phonegap' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.
Naga

@Naga, vous devez installer cordova ou phonegap dans votre répertoire global npm qui est spécifié par la variable de configuration de préfixe par défaut npm ou tout ce que vous définissez dans vos fichiers .npmrc / npmrc. Très probablement, le vôtre est C:\Users\yourusername\AppData\Roaming\npmsi vous utilisez Windows ou un /usr/localnoyau UNIX. Vous pouvez trouver votre préfixe en tapant terminal / commandenpm config get prefix
NoodleOfDeath

9

Depuis le terminal (osx) j'utilise habituellement

cordova plugin -l | xargs cordova plugins rm

Pipe, pipe tout!

Pour développer un peu: cette commande passera en boucle sur les résultats de cordova plugin -let les alimentera cordova plugins rm.

xargs est l'une de ces commandes dont vous vous demandez pourquoi vous ne saviez pas avant. Voir ce tut.


1
Depuis cordova 9.0.0, cela ne fonctionne plus correctement, JVE999 fonctionne.
Bala Clark

4

Je le fais avec ce one-liner en python:

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]"

De toute évidence, il ne gère aucune sorte de conditions d'erreur, mais il fait le travail.


Utilisez simplement un script shell. Ajouter encore un autre langage de programmation avec ses propres dépendances dans le mélange fait de Cordova un désordre encore plus grand.
tfmontague

2

Autant que je me souvienne de Cordova, vous devriez avoir un fichier xml dans le dossier "res" contenant la liste des plugins utilisés dans votre projet. Vous devez probablement supprimer ces plugins inutilisés de la liste. Et vous devez également supprimer les fichiers associés.


Je n'ai pas d'accès physique à cet esclave. Cela ne peut pas être fait de cette façon.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
Allez-y et ajoutez un contexte ou une explication à votre réponse.
Joey Phillips

1

Ceci est la ligne de commande pour supprimer les plugins dans Cordova

cordova plugin remove <pluginid>

Par exemple, j'ai couru cordova pluginet j'ai obtenu une liste de plugins, puis j'ai utilisé l'identifiant du plugin pour désinstaller

cordova plugin remove com.monday.contact-chooser

Vous pouvez obtenir de l'aide dans la ligne de commande en tapant

cordova help <command>


plugin cordova remove com.monday.contact-chooser donnant une erreur comme - Erreur: le plugin "cordova-plugin-name" n'est pas présent dans le projet. Voir cordova plugin list.
S.Yadav

Veuillez supprimer votre message, la question qui a été posée était "y a-t-il une commande qui supprime tous les plugins".
tfmontague

1

Les scripts basés sur le traitement de la liste des plugins installés peuvent ne pas fonctionner car il existe des dépendances entre les plugins installés (e, g, cordova-plugin-file et cordova-plugin-file-transfer).

Dans l'exemple, le script trouvera d'abord le plugin de fichier, puis il essaiera de le supprimer et nous obtiendrons une erreur car le transfert de fichier l'exige. Par conséquent, nous aurons


C'est un bon point sur les dépendances entre les plugins installés. Je pense qu'il y a un drapeau de force --force, qui supprimerait le plugin de toute façon ...
tfmontague

0

Lors de l'exécution de la commande:, cordova plugin remove <PLUGIN NAME>assurez-vous de ne pas ajouter le numéro de version au nom du plugin. Juste le nom du plugin, par exemple:

cordova plugin remove cordova.plugin_name 

et pas:

cordova plugin remove cordova.plugin_name 0.01 

ou

cordova plugin remove "cordova.plugin_name 0.01"

En cas de problème de privilège, exécutez avec sudo si vous êtes sur un système * nix, par exemple:

sudo cordova plugin remove cordova.plugin_name

Ensuite, vous pouvez ajouter --save pour le supprimer du fichier config.xml. Par exemple:

cordova plugin remove cordova.plugin_name --save

0
  • accéder au dossier
  • lister les plugins (liste des plugins cordova)
  • plugin cordova ionique supprimer "pluginName"

Ça devrait aller!


0

Si la solution ci-dessus n'a pas fonctionné et que vous avez reçu un rejet de promesse non géré, essayez de suivre les étapes:

  1. Nettoyer le projet Cordova

    Cordova propre

    1. Supprimer la plateforme

plateforme cordova supprimer android / ios

  1. Puis supprimez le plugin

suppression du plugin cordova

  1. ajouter des plates-formes et exécuter le projet Cela a fonctionné pour moi.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.