如何在构建脚本中自动更新cordova插件?

时间:2018-03-06 10:57:54

标签: cordova cordova-plugins

我在jenkins中有一个多线程项目设置,因此构建是脚本化的,结构如下

Cordova/plugins/*my custom plugins*
Cordova/A/... cordova project
Cordova/B/... another cordova project
Cordova/C/... another cordova project

我的构建脚本,每个项目都执行以下操作

cd A
cordova plugin remove my-custom-plugin
cordova plugin add ../plugins/my-custom-plugin
cd B
cordova plugin remove my-custom-plugin
cordova plugin add ../plugins/my-custom-plugin
cd C
cordova plugin remove my-custom-plugin
cordova plugin add ../plugins/my-custom-plugin

但是尽管../plugins/my-custom-plugin的版本更新,但cordova从平台中删除了插件,但是没有从项目本地插件文件夹中删除它,并且当重新添加它时使用项目本地插件的版本文件夹不是本地../plugin路径中的版本。

我怀疑这是因为config.xml对^1.0.7my-custom-plugin,本地版本为1.0.7../plugins/my-custom-plugin中的新版本为1.0.8。< / p>

有没有办法强制插件始终从../plugins/my-custom-plugin版本更新?最好我可以在构建脚本(bash)中执行一些不涉及额外依赖的内容。

2 个答案:

答案 0 :(得分:1)

我不确定它是否对您的特殊情况有帮助,但是用于检查插件版本和(自动)更新它们的非常好的cli工具是这样的:

cordova-check-plugins

试一试并检查出来。

答案 1 :(得分:0)

我发现了这个问题。

每次构建项目时,都会留下部分ios平台。我不确定为什么会这样,因为我没有明确地1991-01-01 1991-04-01 1991-07-01 1991-10-01 1992-01-01 ,但是在config.xml中有一个对ios的引用,因此可能与它有关。

无论如何,下次构建项目时,脚本会删除插件然后删除平台,并且当尝试从ios平台删除插件时,插件的删除失败,因为cordova platform add ios不是可用,这意味着它无法完成它所拥有的PlatformApi,完全删除插件。

因此,在重新添加时,它使用的是已安装的npm版本,而不是最新版本。

解决方案很简单。首先删除平台,然后删除插件。这样,ios平台问题无法解决插件删除问题。

作为奖励,它可以更快地做到这一点。