2016-08-12 83 views
4

我对电子生态系统和桌面开发仍然陌生,但我希望做的是与第三方开放接口,它与我的软件捆绑在一起。首先,我不确定要分发哪些软件包选项。习惯上有两个下载,一个是已经安装了第三方二进制文件的用户,另一个是包含它的用户?另外我怎么去实际打包,并安装二进制文件?这应该是我的package.json上的一个选项吗?我应该执行哪种脚本?有没有任何NPM模块来促进这一点?如何将第三方二进制文件与Electron进行捆绑?

编辑 - 是否可以从我的main.js调用npm,即使用户以前没有安装节点?我知道节点与电子包捆绑在一起,但也是npm?在这种情况下

-The二是PostgreSQL的

+0

寻找同样的答案。在应用程序捆绑某种存储的情况下,您可以使用SQLite,它只是一个.sqlite文件,因此不需要包含二进制文件。 – pietrovismara

回答

2

有几个来我的脑海选项。

  1. 捆绑第三方安装程序与您的应用程序。这是我最近做的。在第一次运行时,我检查我需要的服务是否已安装/正在运行,如果没有,我会调用第三方安装程序/启动它。当安装程序退出时,我只需app.relaunch()并开始消除它。当然,您需要安装程序来支持您计划支持的每个平台。你必须找出方法来检查软件是否安装(正确)为每个平台。

  2. 与您的应用程序捆绑的二进制文件。当然你可以捆绑几乎任何你的电子应用程序。同样,您需要针对您计划支持的每个平台的二进制文件。当然,他们不应该链接到默认用户在他的机器上没有的任何东西,比如SDK和其他标头...

  3. 不太舒服,但您可以添加一些启动消息或before-下载按钮告诉用户他需要软件xy才能运行你的应用程序。

  4. 1/2的衍生物:根据需要下载所需的东西。对于你的例子,这将意味着检查用户的操作系统和arch,然后下载所需的安装程序或二进制文件(如果可用)。您也可以在用户机器上构建这些东西,尽管这可能是最糟糕/最大/最复杂的解决方案。

  5. 然后有东西像https://www.npmjs.com/package/pg - 你应该经常检查NPM如果有人已经建成,你需要什么;)

我推荐使用大electron-builder这使得捆绑的东西瓦特/您的应用程序一块的蛋糕。

如果您需要更多的英特尔,请随时发表评论。

+0

我认为这个讨论可能会有助于进一步深入: https://stackoverflow.com/questions/33152533/bundling-precompiled-binary-into-electron-app – toioski

相关问题