En quelque sorte, dans mon application, de nombreux plug-ins cordova sont installés et, à cause de cela, il nécessite un accès à presque tout, des contacts à l'emplacement actuel (même si cette application n'en a pas besoin).
Cette application est construite via jenkins et, autant que je sache, une solution consiste à supprimer tous les plugins 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 aboutit à un échec de la construction, existe-t-il une commande qui supprime tous les plugins? (lors de l'installation, les plugins nécessitant le fonctionnement de n'importe quelle application sont ajoutés automatiquement via cordova, donc je cherchais du cordova plugin rm -all
mais je ne pouvais pas le trouver)
Tout d’abord, vous devriez 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.
Vous pouvez également le faire avec bash (après avoir accédé au répertoire de votre projet Cordova):
for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
Depuis le terminal (osx) que j'utilise habituellement
cordova plugin -l | xargs cordova plugins rm
Pipe, pipe tout!
Pour développer un bit: cette commande parcourt les résultats de cordova plugin -l
et le transmet à cordova plugins rm
.
xargs est l'une de ces commandes pour lesquelles vous vous demandez pourquoi vous ne le connaissiez pas auparavant. Voir cette tut.
Vous pouvez utiliser: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm
et utilisez cordova plugins list
pour vérifier si les plugins sont tous supprimés.
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 essaiera d’utiliser la CLI Cordova pour supprimer chaque plug-in, mais en cas d'échec, il supprimera le plug-in de platforms/
et plugins/
.
Si vous souhaitez également supprimer de config.xml, utilisez:
$ cordova-check-plugins --remove-all --save
Disclaimer: Je suis l'auteur de cordova-check-plugins
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 d'erreur, mais le travail est fait.
Ceci est la ligne de commande pour supprimer les plugins dans Cordova
cordova plugin remove <pluginid>
Par exemple, j'ai exécuté cordova plugin
et obtenu une liste de plugins, puis j'ai utilisé l'identifiant du plugin à 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>
Pour 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 devrez probablement supprimer ces plugins inutilisés de la liste. Et aussi, vous devriez supprimer les fichiers associés.
Les scripts basés sur le traitement de la liste des plugins installés risquent de ne pas fonctionner, car il existe des dépendances entre les plugins installés (par exemple, cordova-plugin-file et cordova-plugin-file-transfer).
Dans l'exemple, le script trouvera d'abord le plug-in de fichier, puis essaiera de le supprimer et nous obtiendrons une erreur car le transfert de fichier le requiert. Par conséquent, nous aurons
Lorsque vous exécutez la commande: cordova plugin remove <PLUGIN NAME>
, veillez à ne pas ajouter le numéro de version au nom du plug-in. Tout simplement 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-le 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
Si la solution ci-dessus ne fonctionne pas et que vous recevez un rejet de promesse non géré, essayez de suivre les étapes suivantes:
Nettoyez le projet Cordova
cordova propre
plate-forme cordova supprimer Android/iOS
cordova plugin supprimer
cordova platform rm Android
cordova plugin rm cordova-plugin-firebase
cordova platform add Android
Ça devrait aller!