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

如何在构建脚本中自动更新cordova插件?,cordova,cordova-plugins,Cordova,Cordova Plugins,我在jenkins有一个多cordova项目设置,因此构建是脚本化的,结构如下 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 co

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

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
,本地版本是
1.0.7
/plugins/my custom plugin
中的新版本是
1.0.8


是否有办法强制插件始终从
。/plugins/my custom plugin
版本更新?最好是在我的构建脚本(bash)中执行一些不涉及额外依赖项的操作。

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


试试看。我发现了问题

每次构建项目时,都会留下部分ios平台。我不确定为什么会发生这种情况,因为我没有明确地
cordova platform添加ios
,但config.xml中有一个对ios的引用,因此可能与此有关

无论如何,下一次构建项目时,脚本先删除插件,然后再删除平台,当它试图从ios平台删除插件时,插件的删除失败,因为
PlatformApi
不可用,这意味着它没有时间进行它将要进行的
npm卸载
,完全删除插件

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

解决办法很简单。首先移除平台,然后移除插件。这样,ios平台的问题就不会导致插件的删除


作为奖励,这样做更快。

我知道这个选项,但不想走这条路,因为它增加了另一个依赖项,并且觉得没有必要。