用一个命令更新 cordova 插件

我想知道有没有更简单的方法来更新科尔多瓦插件?

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

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

例如:

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


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

如果没有正式的方式,有没有其他的帮手? 哟?

163335 次浏览

你不能更新它。你可以做的是卸载科尔多瓦插件并再次添加它。

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

我也会喜欢这样的东西-与 PhoneGap/Cordova CLI 插件管理是如此恼人。这篇博客文章可能是类似这样的事情的一个开始——但我不太确定 A)如何利用它,或 B)它将如何工作。

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

我最初尝试在终端命令行中运行整个脚本,结果创建了一个具有添加/删除插件命令的文本输出... ... 但它们实际上并没有执行,只是回显到终端中。我已经联系了作者,希望他们能解释得更详细一点。

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

@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

离子态不推荐使用 ionic@3.7.0

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

ionic state reset

只要您的所有插件信息早些时候保存在 package.json 中,这将实质上为您的所有插件执行 rm/add。只要注意,这也将 rm/添加您的平台,但这应该没有关系。

这也是很好的,当你忽略你的插件文件夹从您的回购,并希望设置在另一台机器上的项目。

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

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

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

我厌倦了手动检查插件更新,所以创建了一个工具来为我做到这一点: https://github.com/dpa99c/cordova-check-plugins

全球安装:

$ npm install -g cordova-check-plugins

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

$ cordova-check-plugins --update=auto

CLI screenshot

下面是我使用的 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

如果存在冲突,这可能会有所帮助,每个 单仲偕的评论。不同之处在于在移除时添加了 --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

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

使用方法:

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

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

这批产品只在 Windows10中测试过

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

使用命令行

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

在 npmjs.org 上找到了另一个答案

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

基本上就是把这个工具安装到你的项目中:

npm install -g cordova-plugin-update

完成后,您必须运行命令

cordova-plugin-update

如果有更新版本的插件可用,它会提示你更新

npm update -f 它对我起作用了

Npm 更新-f

它将更新所有的插件和 cli

  • Cordova-sqlite-Storage@2.3.0
  • Cordova-plugin-x-socialshare@5.3.2
  • Onessignal-cordova-plugin@2.3.3
  • @ ionic-national/device@4.6.0
  • @ ionic-顺应/屏幕方向@4.6.0
  • @ ionic-national/onessignal@4.6.0
  • @ ionic-national/status-bar@4.6.0
  • @ ionic-national/splash-screen@4.6.0
  • @ ionic-national/core@4.6.0
  • @ ionic-national/social-share@4.6.0
  • @ angle/cli@1.7.3
  • Cordova-plugin-splashscreen@5.0.3-dev 在350.86秒内增加了322个包,删除了256个包,更新了91个包,移动了8个包

转到 cordova项目目录,然后写入

npm outdated

npm将显示您的 outdated plugins,如果有任何 plugin outdated然后写这个命令

npm update

Console Preview

如果您安装了第三方软件包:

npm i cordova-check-plugins

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

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

记住,强迫任何事情总是伴随着破坏变更的潜在风险。

正如其他答案所述,管理这些插件的连接 NPM 软件包在更新插件时也需要相应的更新,所以现在你可以通过以下方式检查它们:

npm outdated

然后通知他们

npm update

现在暂时再次服务您的应用程序,并检查所有的东西,有可能出错的突破性变化。软件开发的乐趣!:)

您必须在命令提示符中添加这个 Cordova 命令:

npm install -g cordova-plugin-update


cordova-plugin-update

输入此命令后,将添加插件。