首页 文章

在一个命令中更新cordova插件

提问于
浏览
105

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

我用Google搜索,找到了一个钩子(@ 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 */

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

12 回答

  • 50

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

    全局安装:

    $ npm install -g cordova-check-plugins
    

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

    $ cordova-check-plugins --update=auto
    

    CLI screenshot

  • 2

    ionic state is deprecated as on ionic@3.7.0

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

    ionic state reset
    

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

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

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

  • -8

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

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

    这是我使用的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
    
  • 16

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

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

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

    npm install -g cordova-plugin-update
    

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

    cordova-plugin-update
    

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

  • 49

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

    How to use:

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

    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
    

    This batch was only tested in Windows 10

  • 7

    我也会喜欢这样的东西 - 使用PhoneGap / Cordova CLI进行插件管理非常烦人 . 这篇博客文章可能是这样的开始 - 但我不太确定A)如何利用它或B)它的效果如何 .

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

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

  • 1

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

    @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
    
  • 186

    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

    • @ 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

    • @ angular / cli @ 1.7.3

    • cordova-plugin-splashscreen@5.0.3-dev添加了322个软件包,删除了256个软件包,更新了91个软件包,并在350.86s中移动了8个软件包

  • 3

    最简单的方法是删除plugins文件夹 . 运行此命令: cordova prepare 但是,在运行它之前,您可以检查每个插件's version that you think would work for your build on Cordova' s插件存储库website,然后您应该手动修改config.xml文件 . 在通用建模语言文件的版本字段中使用高级胡萝卜"^","config,"表示您希望将来指定的插件更新到最新版本(下次运行该命令时) .

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

    使用命令行

  • 2

    您不需要删除,只需再次添加即可 .

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

相关问题