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

标签 javascript node.js cordova bluebird

我正在为一个内部项目开发一个 Cordova 插件,并且希望包含一个第三方开源 Javascript 库作为我的插件的一部分:bluebird Promise 库。

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

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

我对 Cordova 的工作方式还很陌生,所以我不知道最好的前进方式是什么。我知道我希望能够使用上面的 require调用以在我需要的地方包含 bluebird,并且我想以遵循 Cordova 工具链的最佳实践和当今 JS 中完成事情的常见方式的方式来执行此操作;例如,使用 npm、gulp 和/或 grunt 将 bluebird 正确打包到我的插件中。

预先感谢您的任何指点。

最佳答案

您可以使用 bundler 。其中任何一个都可以:

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

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

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

关于javascript - 如何在cordova插件中包含第三方javascript nodejs库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704498/

相关文章:

javascript - 如何检查 redux-form 是否存在错误

javascript - 使用 javascript 启用和禁用复选框

node.js - 将 NODE_ENV 传递给 docker 以运行 package.json 脚本

javascript - Koa路由器: How to get query string params?

javascript - 预填充 iPhone Safari SQLite DB

javascript - 在编辑 javascript 时使用 emacs 进行重构

Javascript 跳到最后一个函数,忽略其他函数

arrays - MongoDB - 如何访问数组中的对象

android - 你如何在 Phonegap/Cordova 中使用鼠标事件?

ios - Cordova-plugin-firebase : Cannot run on iOS 12. 2 但在 android 和 iOS 10.3.3 上运行没有任何问题