我在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.7
说my-custom-plugin
,本地版本为1.0.7
,../plugins/my-custom-plugin
中的新版本为1.0.8
。< / p>
有没有办法强制插件始终从../plugins/my-custom-plugin
版本更新?最好我可以在构建脚本(bash)中执行一些不涉及额外依赖的内容。
答案 0 :(得分:1)
答案 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平台问题无法解决插件删除问题。
作为奖励,它可以更快地做到这一点。