我的应用程序需要一个非常重要的插件。在构建服务器中,在使用Cordova CLI添加平台或构建时,Cordova试图获取插件。当插件获取失败时,它会默默显示错误,但Cordova构建仍然成功。理想情况下,如果构建无法获取该插件,则应将失败。
在这种情况下,我如何显式cordova构建,以便我不会将不需要的构建运送到设备?
不幸的是, cordova
, npm
, gradle
和 Apple LLVM
零件与不太相关。他们每个人都生活在自己的生态系统中。这就是为什么它会失败,但同时成功。科尔多瓦并非如此。关心NPM,这两个本地编译器都不是。
请注意,我有点自鸣得意地提到本地一侧?那是关键。您可以做的是创建自己的插件,该插件会导致本机构建如果不存在某些文件。
它不必是官方的"插件",只需创建一些文件,就在您的config.xml中包括:
<plugin name="cordova-plugin-validator" spec="file:plugins/cordova-plugin-validator">
可以在其官方网站上找到一个非常简单的指南:https://cordova.apache.org/docs/en/latest/guide/guide/hybrid/hhybrid/plugins/
您甚至不需要创建验证器插件JavaScript文件,您只需要包含本地零件,例如(从指南复制和修改,只需更改文件名(:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-device" version="0.2.3">
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="Device">
<param name="ios-package" value="CDVDevice"/>
</feature>
</config-file>
<header-file src="src/ios/ImportantPluginValidator.h" />
<source-file src="src/ios/ImportantPluginValidator.m" />
</platform>
platform name="android">
<config-file target="config.xml" parent="/*">
<feature name="Validator">
<param name="android-package" value="com.cordova.important.plugin.validator.ImportantPluginValidator"/>
</feature>
</config-file>
<source-file src="src/android/ImportantPluginValidator.java" target-dir="src/org/apache/cordova/plugin" />
</platform>
</plugin>
和您的iOS(.h and .m(和Android(.java(文件只需要包括您的插件软件包,例如
import my.important.plugin;
和
#import "MyImportantPlugin.h"
就是这样。如果这些文件和软件包可用,则是金色的。如果缺少它们,本机编译器将使用硬 nope!。