Rimozione dei plugin di cordova dal progetto


103

In qualche modo nella mia app sono installati molti dei plugin di Cordova e per questo richiede l'accesso a quasi tutto, dai miei contatti alla posizione corrente (anche se questa app non ne ha bisogno).

Questa app è stata creata tramite jenkins e per quanto ne so una soluzione è rimuovere ogni plugin con un singolo comando, quindi sarà come:

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

Ma a volte mostra alcuni errori e con jenkins qualsiasi errore finisce con un errore di compilazione, quindi esiste un comando che cancella tutti i plugin? (durante l'installazione i plug-in di base che richiedono il funzionamento di qualsiasi app vengono aggiunti automaticamente tramite cordova, quindi ne cercavo alcuni cordova plugin rm -allma non sono riuscito a trovarli)


1
Vorrei raccomandare di creare uno script di shell che chiami l'elenco cordovaplugin e quindi il plug-in cordova rm per ogni riga restituita
QuickFix

Posso fare qualcosa del genere solo tramite makefile. E inoltre non sono così bravo con la riga di comando unix.
mmmm

puoi provare a compilare una richiesta nel progetto cordova per chiedere loro di aggiungere un comando per rimuovere tutti i plugin ...
QuickFix

sì, beh, non ho molto tempo per aspettare che aggiungano un nuovo comando solo per me ..
mmmm

Risposte:


246

Innanzitutto, dovresti elencare i tuoi plugin:

cordova plugin list

Con questo risultato, puoi semplicemente fare:

cordova plugin remove <PLUGIN_NAME>

Per esempio:

cordova plugin remove org.apache.cordova.media

Spero che sia d'aiuto.


Per qualche motivo il mio progetto VS2013 non ne elenca nessuno e la rimozione non funziona. Andato alla vecchia modifica config.xml ed eliminazione della cartella dei plugin ...
Anthony Horne,

8
Il ragazzo ha chiesto un comando per eliminare tutto in un momento. Questa è una semplice risposta documentata per rimuoverne solo uno alla volta.
Imon

8
meglio farlo in cordova plugin remove <PLUGIN_NAME> --savemodo che venga automaticamente rimosso da config.xml
kamayd

19

Puoi farlo anche con bash (dopo essere passato alla directory del tuo progetto Cordova):

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

L'hai testato?
Hamid Araghi

11

Potresti usare: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

e utilizzare cordova plugins listper verificare se i plugin sono stati tutti rimossi.


Non ha funzionato. Ottieni il seguente errore:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague prova a farlo manualmente cordova plugins lse poi vedi se puoi rimuovere i plugin uno per uno usando cordova plugins rm plugin_name. Dall'errore, sembra che uno dei plugin non sia fisicamente presente nel tuo progetto. Usando questo metodo puoi trovare quel plugin.
Hamid Tavakoli

10

La v2.0.0 di cordova-check-plugins ti consente di rimuovere tutti i plugin in un progetto:

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

Tenterà di utilizzare la CLI di Cordova per rimuovere ogni plug-in, ma se fallisce forzerà la rimozione del plug-in da platforms/e plugins/.

Se vuoi rimuovere anche da config.xml, usa:

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

Disclaimer: sono l'autore di cordova-check-plugins


$ cordova-check-plugins --remove-all --save Rimozione di tutti i plug-in ... -ERRORE FATALE: impossibile trovare il comando CLI locale / globale cordova o phonegap globale quando si elencano i plug-in installati - assicurarsi di avere il modulo cordova npm installato localmente nella cartella del progetto o globalmente. Errore: comando non riuscito: phonegap -v "phonegap" non è riconosciuto come comando interno o esterno, programma eseguibile o file batch.
Naga

@Naga hai bisogno che cordova o phonegap siano installati nella tua directory npm globale che è specificata dalla variabile di configurazione npm del prefisso predefinito o da qualsiasi cosa tu lo imposti nei tuoi file .npmrc / npmrc. Molto probabilmente, il tuo è in C:\Users\yourusername\AppData\Roaming\npmse stai utilizzando Windows o un /usr/localkernel UNIX. Puoi scoprire qual è il tuo prefisso digitando terminal / commandnpm config get prefix
NoodleOfDeath

9

Dal terminale (osx) che utilizzo solitamente

cordova plugin -l | xargs cordova plugins rm

Pipa, pipa tutto!

Per espandere un po ': questo comando scorrerà i risultati di cordova plugin -le lo fornirà a cordova plugins rm.

xargs è uno di quei comandi di cui ti chiedi perché non sapevi prima. Vedi questo tut.


1
A partire da cordova 9.0.0 questo non funziona più correttamente, JVE999 funziona.
Bala Clark

4

Lo faccio con questa linea in pitone:

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

Ovviamente non gestisce alcun tipo di condizione di errore, ma porta a termine il lavoro.


Usa semplicemente uno script di shell. Il lancio di un altro linguaggio di programmazione con le sue dipendenze nel mix rende Cordova un pasticcio ancora più grande.
tfmontague

2

Per quanto ricordo da Cordova, dovresti avere un file xml nella cartella "res" contenente l'elenco dei plugin utilizzati nel tuo progetto. Probabilmente dovrai rimuovere i plugin inutilizzati dall'elenco. E dovresti anche rimuovere i file correlati.


Non ho accesso fisico a questo schiavo. Non si può fare in questo modo.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
Vai avanti e aggiungi un contesto o una spiegazione alla tua risposta.
Joey Phillips

1

Questa è la riga di comando per rimuovere i plugin in Cordova

cordova plugin remove <pluginid>

Ad esempio, ho eseguito cordova plugine ottenuto un elenco di plug-in, quindi ho utilizzato l'ID per il plug-in da disinstallare

cordova plugin remove com.monday.contact-chooser

Puoi ottenere aiuto dalla riga di comando digitando

cordova help <command>


Il plugin cordova rimuove com.monday.contact-chooser dando l'errore come - Errore: il plugin "cordova-plugin-name" non è presente nel progetto. Vedi cordova plugin list.
S.Yadav

Si prega di rimuovere il messaggio, la domanda che è stata posta è stata "esiste un comando che cancella tutti i plugin".
tfmontague

1

Gli script basati sull'elaborazione dell'elenco dei plug-in installati potrebbero non funzionare in quanto vi sono dipendenze tra i plug-in installati (e, g, cordova-plugin-file e cordova-plugin-file-transfer).

Nell'esempio, lo script troverà prima il plug-in del file, quindi proverà a rimuoverlo e riceveremo un errore poiché il trasferimento del file lo richiede. Pertanto, avremo


Questo è un buon punto sulle dipendenze tra i plugin installati. Penso che ci sia un flag di forza --force, che rimuoverebbe il plugin a prescindere ...
tfmontague

0

Quando si esegue il comando:, cordova plugin remove <PLUGIN NAME>assicurarsi di non aggiungere il numero di versione al nome del plug-in. Solo un semplice nome del plug-in, ad esempio:

cordova plugin remove cordova.plugin_name 

e non:

cordova plugin remove cordova.plugin_name 0.01 

o

cordova plugin remove "cordova.plugin_name 0.01"

Nel caso in cui ci sia un problema di privilegi, esegui con sudo se sei su un sistema * nix, ad esempio:

sudo cordova plugin remove cordova.plugin_name

Quindi puoi aggiungere --save per rimuoverlo dal file config.xml. Per esempio:

cordova plugin remove cordova.plugin_name --save

0
  • accedi alla cartella
  • elenca i plugin (elenco dei plugin di cordova)
  • plugin ionico cordova rimuovi "pluginName"

Dovrebbe andare bene!


0

Se la soluzione di cui sopra non ha funzionato e hai ricevuto un rifiuto della promessa non gestita, prova a seguire i passaggi:

  1. Pulisci il progetto Cordova

    cordova pulito

    1. Rimuovi piattaforma

piattaforma cordova rimuovere android / ios

  1. Quindi rimuovere il plug-in

cordova plugin remove

  1. aggiungi piattaforme ed esegui il progetto Ha funzionato per me.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.