在一个命令中更新cordova插件

San*_*ang 118 cordova cordova-plugins

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

我用谷歌搜索,找到了一个钩子(@ 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 */
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*den 215

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

全局安装:

$ npm install -g cordova-check-plugins
Run Code Online (Sandbox Code Playgroud)

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

$ cordova-check-plugins --update=auto
Run Code Online (Sandbox Code Playgroud)

CLI截图

  • @JeremyBelolo cordova-check-plugins@1.1.4在更新时添加了对变量保留的支持:-) (3认同)

Moh*_*din 56

你无法更新它.你可以做的是卸载cordova插件并重新添加.

cordova plugin rm https://github.com/apache/cordova-plugin-camera --save
cordova plugin add https://github.com/apache/cordova-plugin-camera --save
Run Code Online (Sandbox Code Playgroud)


Mat*_*Way 51

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

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

ionic state reset
Run Code Online (Sandbox Code Playgroud)

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

当您从repo中忽略插件文件夹并希望在另一台计算机上设置项目时,这也很好.

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


nic*_*ano 26

这是我使用的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
Run Code Online (Sandbox Code Playgroud)

根据shan的评论,如果存在冲突,这可能会有所帮助.不同之处在于--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
Run Code Online (Sandbox Code Playgroud)

  • 添加--force可能有助于冲突cordova插件rm $ PLUGIN --force --save (2认同)

Fla*_*ash 26

找到了npmjs.org的另一个答案

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

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

npm install -g cordova-plugin-update
Run Code Online (Sandbox Code Playgroud)

完成后,您必须运行该命令

cordova-plugin-update
Run Code Online (Sandbox Code Playgroud)

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


小智 7

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

如何使用:

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

c:\> batchNameFile
Run Code Online (Sandbox Code Playgroud)

要么

c:\> batchNameFile autoupdate
Run Code Online (Sandbox Code Playgroud)

其中"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
Run Code Online (Sandbox Code Playgroud)

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


RKT*_*XYN 6

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

npm outdated
Run Code Online (Sandbox Code Playgroud)

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

npm update
Run Code Online (Sandbox Code Playgroud)

控制台预览


小智 5

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

npm 更新 -f

它将更新所有插件和 cli

  • 科尔多瓦-sqlite-storage@2.3.0
  • cordova-plugin-x-socialsharing@5.3.2
  • onesignal-cordova-plugin@2.3.3
  • @ionic-native/device@4.6.0
  • @ionic-native/screen-orientation@4.6.0
  • @ionic-native/onesignal@4.6.0
  • @ionic-native/status-bar@4.6.0
  • @ionic-native/splash-screen@4.6.0
  • @ionic-native/core@4.6.0
  • @ionic-native/social-sharing@4.6.0
  • @角度/cli@1.7.3
  • cordova-plugin-splashscreen@5.0.3-dev 在 350.86 秒内添加了 322 个包、删除了 256 个包、更新了 91 个包并移动了 8 个包