Atualizar plugins cordova em um comando


124

Gostaria de saber se existe uma maneira mais fácil de atualizar o plugin cordova?

Pesquisei no google, encontrei um gancho (@ ano de 2013), mas isso não é 100% o que eu quero.

Eu sei que posso fazer isso por duas etapas: rm, em seguida, adicione, mas estou procurando uma maneira melhor (oficial) de me ajudar quais plugins têm a versão mais recente? e eu posso atualizar TODOS eles em um comando. (assim como: atualização npm)

por exemplo:

$ cordova plugin list
/* list all installed plugins, their dependencies, and newer versions */

$ cordova plugin update
/* update all of them for me */

se não existe uma maneira oficial, existe algum outro ajudante? ei


AFAIK Acho que não
#

Aqui está um script que faz isso stackoverflow.com/a/36378949/5966317
nick.graziano

Eu fui um passo adiante e na minha pasta do projeto pod update
iOS

Respostas:


222

Eu cansei de verificar manualmente as atualizações de plugins, então criei uma ferramenta para fazer isso por mim: https://github.com/dpa99c/cordova-check-plugins

Instale-o globalmente:

$ npm install -g cordova-check-plugins

Em seguida, execute a partir da raiz do seu projeto Cordova. Você pode opcionalmente atualizar plugins desatualizados de forma interativa ou automática, por exemplo

$ cordova-check-plugins --update=auto

Captura de tela da CLI


Ocorreu um erro ao executar a segunda linha: erro como: plugin: cordova-plugin-statusbar fonte: npm: // cordova-plugin-statusbar versão instalada: UNKNOWN - verifique plugins / fetch.json quanto a entradas órfãs. versão remota: 2.1.1 Como posso resolvê-lo? obrigado
Agnosco

@Agnosco significa que o plugin não pode determinar o número da versão local, provavelmente por estar corrompido fetch.json. Eu sugeriria remover e reinstalar manualmente o plug-in afetado.
precisa saber é o seguinte

Isso é incrível! A melhoria possível seria adicionar a possibilidade de dar argumentos para o comando ao atualizar, como para o facebook plug-in que seria possível para atualizar automaticamente e não tem esse problemaError: Variable(s) missing (use: --variable APP_ID=value --variable APP_NAME=value)
Jeremy Belolo

4
@JeremyBelolo cordova-check-plugins@1.1.4 adiciona suporte para preservar variáveis ao atualizar :-)
DaveAlden

1
@ Al-Mothafar Você entendeu errado o propósito de explicar por que as vulnerabilidades de segurança são relatadas pelo npm. Como afirmei no problema que você abriu , as vulnerabilidades do pacote relatadas pelo npm são irrelevantes aqui, pois essa é uma ferramenta CLI projetada para ser implantada em uma máquina local de desenvolvimento à qual somente você tem acesso, e não em um servidor público remoto onde eles podem ser explorado por hackers.
21419 DaveAlden


52

estado iônico está obsoleto como em ionic@3.7.0

Se você estiver usando ionic e o ionic cli, poderá executar:

ionic state reset

Desde que todas as informações do seu plug-in tenham sido salvas no seu package.json anteriormente, isso basicamente executará uma rm / add para todos os seus plug-ins. Apenas observe que isso também rm / adicionará suas plataformas, mas isso não deve importar.

Isso também é bom para quando você ignora as pastas de plug-in do seu repositório e deseja configurar o projeto em outra máquina.

Obviamente, isso não responde diretamente à pergunta, mas muitas pessoas estão usando as duas e acabarão aqui.


se você tiver os plugins definidos no config.xmlarquivo, poderá realmente excluí-los e fazer um ciclo rm / add nas plataformas. ionic platform addirá detectar plugins ausentes e adicioná-los. Mas apenas aqueles definidos naconfig.xml
A.Grandt

ionic state resetdefinitivamente remove plugins - ionic state restorepode ser necessário para reinstalá-los.
emc

1
redefinição do estado iônico - foi depreciado no ionic-v1, portanto, você não pode mais usar este comando.
precisa saber é o seguinte

1
O estado iônico [ERRO] foi removido a partir da CLI 3.0. Recomendamos o uso direto do Cordova para gerenciar plugins e plataformas do Cordova.
precisa saber é o seguinte

31

Encontrei outra resposta do npmjs.org

https://www.npmjs.com/package/cordova-plugin-update

Basicamente, é a instalação da ferramenta no seu projeto:

npm install -g cordova-plugin-update

Quando terminar, você precisará executar o comando

cordova-plugin-update

e solicitará que você atualize se alguma versão mais recente de um plug-in estiver disponível


Eu tentei, mas ele seja removido plugins de config.xml, apenas atualizados em package.json
Peter T.

27

Aqui está um script bash que eu uso, funciona no OSX 10.11.3.

#!/bin/bash

PLUGINS=$(cordova plugin list | awk '{print $1}')

for PLUGIN in $PLUGINS; do
    cordova plugin rm $PLUGIN --save && cordova plugin add $PLUGIN --save
done

Isso pode ajudar se houver conflitos, de acordo com o comentário de Shan . A diferença é a adição da --forcebandeira ao remover.

#!/bin/bash

PLUGINS=$(cordova plugin list | awk '{print $1}')

for PLUGIN in $PLUGINS; do
    cordova plugin rm $PLUGIN --force --save && cordova plugin add $PLUGIN --save
done

1
este é um hack legal, mas falhará para plugins que exigem parâmetros após a instalação, como-plugin cordova-facebook4
Max

2
adicionando --force pode ajudar em conflitos cordova plugin rm $ PLUGIN --force --save
Dan Jay

8

Esta é a minha versão do Windows Batch para atualizar todos os plugins em um comando

Como usar:

Na linha de comando, na mesma pasta do projeto, execute

c:\> batchNameFile

ou

c:\> batchNameFile autoupdate

Onde "batchNameFile" é o nome do arquivo .BAT, com o script abaixo.

Apenas para teste (primeiro exemplo) ou para forçar todas as atualizações disponíveis (segundo exemplo)

@echo off

cls

set pluginListFile=update.plugin.list

if exist %pluginListFile% del %pluginListFile%

Echo "Reading installed Plugins"
Call cordova plugins > %pluginListFile%
echo.

for /F "tokens=1,2 delims= " %%a in ( %pluginListFile% ) do (
   Echo "Checking online version for %%a"

   for /F "delims=" %%I in ( 'npm info %%a version' ) do (
     Echo "Local : %%b"
     Echo "Online: %%I"
     if %%b LSS %%I Call :toUpdate %%a %~1
     :cont
     echo.
   )
)

if exist %pluginListFile% del %pluginListFile%

Exit /B

:toUpdate
Echo "Need Update !"
if '%~2' == 'autoupdate' Call :DoUpdate %~1
goto cont

:DoUpdate
Echo "Removing Plugin"
Call cordova plugin rm %~1
Echo "Adding Plugin"
Call cordova plugin add %~1
goto cont

Este lote foi testado apenas no Windows 10


6

Vá para o cordovadiretório do seu projeto e escreva

npm outdated

npmserá exibido seu outdated plugins, se houver algum plugin outdated, escreva este comando

npm update

Visualização do console


4

npm update -f seu trabalho me forma

npm update -f

ele atualizará todos os plugins e cli

  • cordova-sqlite-storage@2.3.0
  • cordova-plugin-x-socialsharing@5.3.2
  • onesignal-cordova-plugin@2.3.3
  • @ ionic-native / device @ 4.6.0
  • @ nativo iônico / orientação da tela @ 4.6.0
  • @ ionic-native / onesignal @ 4.6.0
  • @ nativo-iônico / barra de status @ 4.6.0
  • @ nativo-iônico / tela inicial @ 4.6.0
  • @ nativo-iônico / núcleo @ 4.6.0
  • @ nativo-iônico / compartilhamento social @ 4.6.0
  • @ angular / cli @ 1.7.3
  • cordova-plugin-splashscreen@5.0.3-dev adicionou 322 pacotes, removeu 256 pacotes, atualizou 91 pacotes e moveu 8 pacotes em 350,86s

3

Eu também adoraria algo assim - o gerenciamento de plugins com a CLI PhoneGap / Cordova é tão irritante. Este post aqui pode ser o começo de algo assim - mas não tenho muita certeza A) como aproveitá-lo ainda ou B) quão bem ele funcionaria.

http://nocurve.com/cordova-update-all-plugins-in-project

Minha tentativa inicial de executar o script inteiro diretamente na linha de comando do terminal criou uma saída de texto com comandos de adicionar / remover plugins ... mas na verdade eles não executaram, apenas ecoaram no terminal. Entrei em contato com o autor esperando que eles expliquem um pouco mais.


autor do blog aqui - não tenho idéia do motivo pelo qual ecoei os comandos - eles deveriam ser executados - devem ter colado uma versão de teste do script. De qualquer forma, espero que ajude alguém ...
Amnon

2

você não pode atualizar, mas escrevi um arquivo em lotes que remove meus plug-ins e instala novamente. Nesse caso, todos os meus plug-ins são atualizados automaticamente. Espero que isso resolva o seu problema.

@echo off
for %%a in (
"com.ionic.keyboard"
"com.phonegap.plugins.PushPlugin"
"cordova-instagram-plugin"
"cordova-plugin-camera"
"cordova-plugin-crosswalk-webview"
"cordova-plugin-file"
"cordova-plugin-file-transfer"

) do call cordova plugin rm %%a


for %%b in (
"com.ionic.keyboard"
"com.phonegap.plugins.PushPlugin"
"cordova-instagram-plugin"
"cordova-plugin-camera"
"cordova-plugin-crosswalk-webview"
"cordova-plugin-file"
"cordova-plugin-file-transfer"


) do call cordova plugin add %%b

alguma maneira de atualizar esse script para retirar os nomes dos plugins da saída de cordova plugins?
mix3d 17/03/2019

1

A maneira mais fácil seria excluir a pasta de plugins. Execute este comando: cordova prepare Mas, antes de executá-lo, você pode verificar a versão de cada plug-in que você acha que funcionaria para a sua compilação no site de repositório de plug-ins do Cordova e, em seguida, modificar o arquivo config.xml manualmente. Use cenouras superiores, "^" no campo da versão do arquivo da linguagem de modelagem universal, "config", para indicar que você deseja que o plug-in especificado seja atualizado para a versão mais recente no futuro (na próxima vez em que executar o comando).


Heehee, cenouras superiores, adoro. Isso colocou um sorriso no meu rosto. Na verdade, é singular e chamado de sinal de intercalação (^).
AlphaBeta 11/07/19

0

Se você instalar o pacote de terceiros:

npm i cordova-check-plugins

Você pode executar um comando simples de

cordova-check-plugins --update=auto --force

Lembre-se de forçar qualquer coisa sempre com riscos potenciais de interromper as alterações.

Como outras respostas indicaram, os pacotes NPM de conexão que gerenciam esses plug-ins também exigem uma atualização conseqüente ao atualizar os plug-ins, então agora você pode verificá-los com:

npm outdated

E depois varrendo atualize-os com

npm update

Agora experimente servir o aplicativo novamente e verifique todas as coisas que potencialmente deram errado ao quebrar as alterações. A alegria do desenvolvimento de software! :)



-8

Você não precisa remover, basta adicionar novamente.

cordova plugin add https://github.com/apache/cordova-plugin-camera
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.