Removendo plugins Cordova do projeto

103

De alguma forma, em meu aplicativo muitos dos plug-ins do Cordova estão instalados e por isso requer acesso a quase tudo - dos meus contatos à localização atual (embora este aplicativo não precise disso).

Este aplicativo é construído via Jenkins e, pelo que entendi, uma solução é remover todos os plug-ins com um único comando, então será assim:

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

Mas às vezes mostra alguns erros e com jenkins qualquer erro termina com falha de construção, então existe algum comando que exclui todos os plug-ins? (durante a instalação, plug-ins básicos que requerem qualquer aplicativo para funcionar são adicionados automaticamente via cordova, então eu estava procurando por alguns, cordova plugin rm -allmas não consegui encontrar)

mmmm
fonte
1
Você recomendaria a construção de um script de shell que chame a lista de cordovaplugin e, em seguida, faça o rm do plugin de cordova para cada linha retornada
QuickFix
Eu só posso fazer algo assim por meio do makefile. E também não sou muito bom com linha de comando unix.
mmmm
você pode tentar preencher um pedido no projeto cordova para pedir-lhes para adicionar um comando para remover todos os plug-ins ...
QuickFix
sim, bem, eu não tenho muito tempo para esperar até que eles adicionem um novo comando só para mim ..
mmmm

Respostas:

246

Primeiro, você deve listar seus plug-ins:

cordova plugin list

Com este resultado, você pode simplesmente fazer:

cordova plugin remove <PLUGIN_NAME>

Por exemplo:

cordova plugin remove org.apache.cordova.media

Espero que ajude.

Ruhanbidart
fonte
Por algum motivo, meu projeto VS2013 não lista nenhum e remover não funciona. Foi para edição de config.xml à moda antiga e exclusão de pasta de plug-in ...
Anthony Horne
8
O cara pediu um comando para deletar tudo de uma vez. Esta é uma resposta simples documentada para remover apenas um de cada vez.
Imon
8
melhor fazer cordova plugin remove <PLUGIN_NAME> --savepara que seja removido automaticamente de config.xml
kamayd
19

Você também pode fazer isso com o bash (após alternar para o diretório do projeto Cordova):

for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
JVE999
fonte
Você testou?
Hamid Araghi
11

Você pode usar: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

e use cordova plugins listpara verificar se todos os plug-ins foram removidos.

Hamid Tavakoli
fonte
Não funcionou. Obtenha o seguinte erro:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague
1
@tfmontague tente fazer manualmente cordova plugins lse então veja se você pode remover os plugins um por um usando cordova plugins rm plugin_name. Pelo erro, parece que um dos plug-ins não está fisicamente presente em seu projeto. Usando este método, você pode encontrar esse plugin.
Hamid Tavakoli
10

A v2.0.0 de cordova-check-plugins permite que você remova todos os plug-ins em um projeto:

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

Ele tentará usar a CLI do Cordova para remover cada plug-in, mas se falhar, forçará a remoção do plug-in de platforms/e plugins/.

Se você também deseja remover do config.xml, use:

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

Aviso de isenção de responsabilidade: eu sou o autor de cordova-check-plugins

DaveAlden
fonte
$ cordova-check-plugins --remove-all --save Removendo todos os plug-ins ... ERRO FATAL: Falha ao localizar cordova local / global ou comando CLI global phonegap ao listar os plug-ins instalados - certifique-se de ter o módulo cordova npm instalado localmente na pasta do seu projeto ou globalmente. Erro: Falha no comando: phonegap -v 'phonegap' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote.
Naga
@Naga você precisa de cordova ou phonegap instalado em seu diretório npm global que é especificado pela variável de configuração npm de prefixo padrão ou o que você definir em seus arquivos .npmrc / npmrc. Provavelmente, o seu está disponível C:\Users\yourusername\AppData\Roaming\npmse você estiver executando no Windows ou /usr/localno kernel UNIX. Você pode descobrir qual é o seu prefixo digitando terminal / commandnpm config get prefix
NoodleOfDeath
9

Do terminal (osx) eu costumo usar

cordova plugin -l | xargs cordova plugins rm

Canalize, canalize tudo!

Para expandir um pouco: este comando irá percorrer os resultados de cordova plugin -le alimentá-los cordova plugins rm.

xargs é um daqueles comandos que você quer saber por que você não sabia antes. Veja este tut.

Kuzyn
fonte
1
A partir de cordova 9.0.0 isso não funciona mais corretamente, o JVE999 funciona.
Bala Clark de
4

Eu faço isso com este one-liner 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]"

Obviamente, ele não lida com nenhum tipo de condição de erro, mas realiza o trabalho.

Matthew Purdon
fonte
Basta usar um script de shell. Adicionar outra linguagem de programação com suas próprias dependências à mistura torna o Cordova uma bagunça ainda maior.
tfmontague
2

Pelo que me lembro do Cordova, você deve ter um arquivo xml na pasta "res" contendo a lista de plug-ins usados ​​em seu projeto. Você provavelmente precisará remover esses plug-ins não usados ​​da lista. E também você deve remover os arquivos relacionados.

Osayilgan
fonte
Eu não tenho acesso físico a este escravo. Não pode ser feito desta forma.
mmmm
2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android
usuário9972736
fonte
1
Vá em frente e adicione algum contexto ou explicação à sua resposta.
Joey Phillips
1

Esta é a linha de comando para remover plugins no Cordova

cordova plugin remove <pluginid>

Por exemplo, eu executei cordova plugine recebi uma lista de plug-ins e usei o id do plug-in para desinstalar

cordova plugin remove com.monday.contact-chooser

Você pode obter ajuda na linha de comando digitando

cordova help <command>

Jack Shultz
fonte
plug-in cordova remove com.monday.contact-chooser dando erro como - Erro: Plugin "cordova-plugin-name" não está presente no projeto. Veja cordova plugin list.
S.Yadav
Remova sua postagem, a pergunta que foi feita foi "existe algum comando que exclua todos os plug-ins".
tfmontague
1

Os scripts baseados no processamento da lista de plug-ins instalados podem não funcionar, pois há dependências entre os plug-ins instalados (por exemplo, cordova-plugin-file e cordova-plugin-file-transfer).

No exemplo, o script encontrará o plug-in de arquivo primeiro, depois tentará removê-lo e obteremos um erro, pois a transferência de arquivo exige. Portanto, devemos ter

Nacho Marín
fonte
Este é um bom ponto sobre dependências entre plug-ins instalados. Acho que há um sinalizador de força --force, que removeria o plug-in independentemente ...
tfmontague
0

Ao executar o comando:, cordova plugin remove <PLUGIN NAME>certifique-se de não adicionar o número da versão ao nome do plugin. Simplesmente o nome do plugin, por exemplo:

cordova plugin remove cordova.plugin_name 

e não:

cordova plugin remove cordova.plugin_name 0.01 

ou

cordova plugin remove "cordova.plugin_name 0.01"

Caso haja um problema de privilégio, execute com sudo se estiver em um sistema * nix, por exemplo:

sudo cordova plugin remove cordova.plugin_name

Então você pode adicionar --save para removê-lo do arquivo config.xml. Por exemplo:

cordova plugin remove cordova.plugin_name --save
franco
fonte
0
  • acessar a pasta
  • liste os plugins (lista de plugins cordova)
  • Plugin cordova ionic remove "pluginName"

Deve ficar bem!

Mekkush
fonte
0

Se a solução acima não funcionar e você tiver uma rejeição de promessa não tratada, tente seguir as etapas:

  1. Limpe o projeto Cordova

    cordova limpa

    1. Remover plataforma

plataforma cordova remover android / ios

  1. Em seguida, remova o plugin

remover plug-in cordova

  1. adicionar plataformas e executar o projeto Funcionou para mim.
rahul.sapkal23
fonte