Cordova 在 android 项目中添加插件非常慢

Cordova adding plugins in android project is very slow

我们正在 CI 上自动构建 APK,但整个过程大约需要 10 分钟,80% 的时间都花在了这个阶段。

Discovered plugin "cordova-plugin-statusbar" in config.xml. Adding it to the project
Installing "cordova-plugin-statusbar" for android
Adding cordova-plugin-statusbar to package.json
Saved plugin info for "cordova-plugin-statusbar" to config.xml.

这些插件来自 config.xml

<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^2.0.0" />
<plugin name="phonegap-plugin-barcodescanner" spec="^8.0.0">
    <variable name="ANDROID_SUPPORT_V4_VERSION" value="27.+" />
</plugin>
<plugin name="cordova-plugin-camera-preview" spec="^0.10.0" />
<plugin name="cordova-plugin-screen-orientation" spec="^3.0.1" />
<plugin name="cordova.plugins.diagnostic" spec="^4.0.10" />
<plugin name="cordova-android-support-gradle-release" spec="^1.4.4">
    <variable name="ANDROID_SUPPORT_VERSION" value="26.+" />
</plugin>
<plugin name="cordova-sqlite-storage" spec="^2.4.0" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.2" />
<plugin name="cordova-plugin-camera" spec="^4.0.3" />

是否可以通过某种方式缓存结果或任何其他加速插件安装的方式来加速这些过程?

如果您将 Cordova plugins/ 目录置于版本控制之下(可能在您的 Git 存储库中),那么当项目在 CI 环境中签出时,Cordova 将查看for 并使用这些本地插件,而不是离开去通过 npm 远程获取每个插件。这应该使过程更快。 If/when您需要更新您的插件,只需将更新提交到 repo。

虽然理论上您也可以将 platforms/ 提交到您的存储库以使构建速度更快(这样 Cordova 就不必安装和构建每个平台项目),但我建议不要将此作为平台Cordova 项目中的项目应被视为易变的。