在一个命令中更新cordova插件

时间:2015-02-28 16:24:30

标签: cordova cordova-plugins

我想知道有更简单的方法来更新cordova插件吗?

我用谷歌搜索,找到了一个钩子(@ 2013年),但这不是我想要的100%。

我知道我可以通过两个步骤完成此操作:rm,然后添加 但我正在寻找一种更好的(官方)方式来帮助我哪些插件有更新的版本?我可以在一个命令中更新所有这些。 (就像:npm update)

例如:

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

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

如果没有官方方式,还有其他帮手吗?哟?

13 个答案:

答案 0 :(得分:201)

我厌倦了手动检查插件更新,因此创建了一个工具来为我完成:https://github.com/dpa99c/cordova-check-plugins

全局安装:

$ npm install -g cordova-check-plugins

然后从Cordova项目的根目录运行。您可以选择以交互方式或自动方式更新过时的插件,例如

$ cordova-check-plugins --update=auto

CLI screenshot

答案 1 :(得分:54)

您无法更新。您可以做的是卸载cordova插件并重新添加。

cordova plugin rm https://github.com/apache/cordova-plugin-camera --save
cordova plugin add https://github.com/apache/cordova-plugin-camera --save

答案 2 :(得分:50)

离子状态已弃用,如ionic@3.7.0

如果您碰巧使用离子和离子cli,您可以运行:

ionic state reset

只要您的所有插件信息都保存在package.json中,这实际上将为您的所有插件执行rm / add。请注意,这也将同时添加/添加您的平台,但这无关紧要。

当你从你的仓库中忽略你的插件文件夹,并想在另一台机器上设置项目时,这也很好。

显然这并没有直接回答这个问题,但很多人目前都在使用这两个问题,并且最终会在这里结束。

答案 3 :(得分:24)

这是我使用的bash脚本,适用于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

如果存在冲突,这可能会有所帮助shan's comment。不同之处在于删除时添加--force标志。

#!/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

答案 4 :(得分:22)

从npmjs.org

中找到另一个答案

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

基本上它将工具安装到您的项目中:

npm install -g cordova-plugin-update

完成后,您必须运行命令

cordova-plugin-update

如果有更新版本的插件,它会提示您更新

答案 5 :(得分:7)

这是我的Windows Batch版本,用于在一个命令中更新所有插件

使用方法:

从命令行,在项目的同一文件夹中,运行

c:\> batchNameFile

c:\> batchNameFile autoupdate

其中" batchNameFile"是.BAT文件的名称,下面是脚本。

仅用于测试(第一个例子)或强制每个更新可用(第二个例子)

@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

此批次仅在Windows 10中进行了测试

答案 6 :(得分:3)

npm update -f 它的工作形式是我

npm update -f

它将更新所有插件和cli

  • cordova-sqlite-storage@2.3.0
  • cordova-plugin-x-socialsharing@5.3.2
  • onesignal-cordova-plugin@2.3.3
  • @离子天然/设备@ 4.6.0
  • @离子天然/屏幕取向@ 4.6.0
  • @离子天然/ onesignal @ 4.6.0
  • @离子天然/状态栏@ 4.6.0
  • @离子天然/防溅屏幕@ 4.6.0
  • @离子天然/芯@ 4.6.0
  • @ /共享社会离子天然@ 4.6.0
  • @角/ CLI @ 1.7.3
  • cordova-plugin-splashscreen@5.0.3-dev 添加了322个软件包,删除了256个软件包,更新了91个软件包,并在350.86s中移动了8个软件包

答案 7 :(得分:3)

转到您的cordova项目目录,然后编写

npm outdated

npm将显示您的outdated plugins,如果有plugin outdated,则编写此命令

npm update

Console Preview

答案 8 :(得分:2)

你无法更新,但我写了一个删除我的插件并再次安装的批处理文件,所以在这种情况下我的所有插件都会自动更新,希望这能解决你的问题

@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

答案 9 :(得分:1)

最简单的方法是删除plugins文件夹。运行此命令: cordova prepare 但是,在运行它之前,您可以检查您认为适合在Cordova的插件存储库website上构建的每个插件的版本,然后您应该手动修改config.xml文件。在通用建模语言文件的“版本”字段“config”中使用高级胡萝卜“^”表示您希望将来指定的插件更新到最新版本(下次运行该命令时)。 / p>

答案 10 :(得分:0)

如果安装第三方软件包:

npm i cordova-check-plugins

然后您可以运行一个简单的命令

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

请记住,强迫任何事情总是会带来改变的潜在风险。

如其他答案所述,用于管理这些插件的NPM软件包在更新插件时也需要随之更新,因此现在您可以使用以下命令进行检查:

npm outdated

然后使用

npm update

现在,暂时再次为您的应用提供服务,并检查所有因更改而造成的问题。软件开发的喜悦! :)

答案 11 :(得分:-2)

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

使用命令行

答案 12 :(得分:-8)

您不需要删除,只需再次添加。

cordova plugin add https://github.com/apache/cordova-plugin-camera