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.