【问题标题】:Updating cordova plugins according to config.xml根据 config.xml 更新 cordova 插件
【发布时间】:2016-10-26 16:53:37
【问题描述】:

我在两台机器上处理我的 cordova 项目:macbook 和 PC。 当我在一台机器上更新插件时,在拉取更改后,另一台机器上没有任何更新。使用 git 跟踪 cordova 插件可以解决问题,但看起来非常糟糕。目前我只跟踪 config.xml。

当我尝试执行时: cordova plugin add cordova-plugin-my-plugin 它只显示这样的列表:

...
skipping existing file: android-1.png
skipping existing file: android-2.png
cp: dest file already exists: /Users/user/cordova-app/plugins/cordova-plugin-my-plugin/LICENSE
cp: dest file already exists: /Users/user/cordova-app/plugins/cordova-plugin-my-plugin/README.md
...

所以最终每个插件都需要一个驴工作:

  • cordova plugin rm cordova-plugin-my-plugin
  • cordova plugin add cordova-plugin-my-plugin@1.2.3

有人遇到过这个问题并解决了吗?

【问题讨论】:

    标签: git cordova plugins


    【解决方案1】:

    使用cordova plugin add cordova-plugin-my-plugin@1.2.3 --save - 这会将插件 npm 名称(或本地路径或 url)连同版本一起放入 config.xml
    然后cordova prepare 会将插件恢复到保存的版本。

    详情请见https://cordova.apache.org/docs/en/6.x/platform_plugin_versioning_ref/index.html#saving-plugins

    【讨论】:

    • 谢谢,但最初我使用--save 选项,所以包保存在 config.xml 中。问题是:当我在一台计算机上更新软件包时,第二台计算机上没有更新cordova prepare
    • 如何更新包?插件是在 npm 还是 Github 上?您的 config.xml 中有什么(与插件相关)?
    • 这是 github,指定了哈希 <plugin name="cordova-plugin-camera-preview" spec="https://github.com/chancezeus/cordova-plugin-camera-preview.git#c6f4aea226f54db4ec4850f3b1d9e9841a0ad426" />
    • 所以你先运行cordova plugin add https://github.com/user/plugin#hash1 --save,然后更新并将提交hash2推送到插件仓库,将config.xml hash1更新为hash2,调用cordova prepare就可以了不更新到新版本?
    • 没错!即使从一个分支切换到另一个分支也只不过是显示信息skipping existing file ABC
    【解决方案2】:

    我有同样的问题(在多台机器上保持已安装的插件与 config.xml 同步)。

    我创建了一个工具 - cordova-check-plugins - 允许您这样做:

    $ npm install -g cordova-check-plugins
    

    在 v2.0.0 中,指定 --target=config 会根据 config.xml 中指定的版本检查本地安装的插件的版本,因此您可以查看哪些本地安装的插件相对于 config.xml 已过期。

    要将本地插件更新到 config.xml 中指定的版本,请使用:

    $ cordova-check-plugins --target=config --update=auto
    

    如果要强制执行此操作,即使本地安装的版本高于 config.xml 中指定的版本,请使用:

    $ cordova-check-plugins --target=config --update=auto --allow-downdate
    

    您可以检查哪些插件有远程可用的更新,以交互方式更新它们,并将更新的版本保存到 config.xml 使用:

    $ cordova-check-plugins --update=interactive --unconstrain-versions --save
    

    【讨论】:

      【解决方案3】:

      用这玩意玩了很久,100%情况下的方法是:

      • 移除插件/*
      • 移除平台/*
      • 致电cordova prepare

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        • 2017-03-19
        • 2019-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多