如何在cordova插件中包含第三方javascript nodejs库?

时间:2017-03-09 20:08:05

标签: javascript node.js cordova bluebird

我正在为内部项目开发Cordova插件,并希望将第三方开源Javascript库作为我的插件的一部分:bluebird promise library。

最简单的解决方案似乎是将蓝鸟JS文件复制并粘贴到我的www/目录中,然后将它们全部包含在plugin.xml标签的<js-module>文件中,以便它们被复制到我的插件目录中。但我不认为这就是我想要的,因为它将我的插件非常紧密地耦合到蓝鸟图书馆文件的结构。

此外,我不知道这是否会以我在我自己的插件的JS文件中执行var Promise = require('bluebird');的方式工作。

我对科尔多瓦的工作原理还不熟悉,所以我不知道前进的最佳方式是什么。我知道我希望能够使用上面的require调用将bluebird包含在我需要的地方,并且我希望以遵循Cordova工具链的最佳实践以及事物的常见方式的方式来实现这些天在JS完成;例如,使用npm,gulp和/或grunt将蓝鸟正确打包到我的插件中。

提前感谢您提出的任何指示。

2 个答案:

答案 0 :(得分:0)

您可以使用捆绑包。其中任何一个都可以:

然后捆绑您的JS并将捆绑包与您的插件一起发送。

就承诺而言,根据CanIUse,iOS 8+和Android 4.4.4+支持Promise标准,Edge 12+也是如此。根据您支持的平台,您可能不需要担心额外的库(除非您使用特定于蓝鸟的功能)。

或者,您可以允许用户将他们喜欢的promise库传递给配置方法(只要符合规范),如果他们不覆盖它,则默认为本机Promises(或您安装的bluebird库)

答案 1 :(得分:0)

如果您的库在 npm 中可用(很可能是这样),您可以使用 npm 包:cordova-import-npm