node js - 如何创建用于商业用途的构建?

Posted

技术标签:

【中文标题】node js - 如何创建用于商业用途的构建?【英文标题】:node js - How do I create build for commercial usage? 【发布时间】:2017-05-16 09:09:48 【问题描述】:

我正在开发 node js 应用程序,现在可以使用了。我想制作这个应用程序的exe,以便它可以用于商业用途。

到目前为止,我已经使用了 enclose 模块,我使用它编译了应用程序的代码,但我发现了一些问题(应用程序在空闲条件下崩溃)。应用程序运行良好,无需封装或编译代码。

我在谷歌上搜索并找到了一些替代模块,如 JXcore、Node webkit 和 Electron 等,但 JX 核心给出的错误与 SO question. 中相同

node web-kit 中,它的功能看起来不合适,因为我们需要它的可执行文件和一些 dll 以及我们的代码,这使得我们的包体积庞大。

我也试过 jxcore。 exe 和我们使用的模块的主要问题是它们使用本地模块的能力,在我的例子中是 Kinect.node 模块。该模块无法编译。我们需要一种解决方法来仅将它与我们的 .exe 文件一起打包。 Enclose 在其内置功能中提供了这种解决方法。

还寻找来自 EncloseJS 的回复,实际上只有一个人在购买时会提供进一步的说明。商业用途需要购买。

如果是Electron,它只支持Electron-based application source code。所以如果我选择这个,那么我必须修改我的应用程序代码。

那么任何人都可以建议我如何从节点 js 代码那里制作 exe 文件吗?

谢谢!

【问题讨论】:

如果您需要可执行文件,那么您需要使用一些理解其定义结构的框架才能正确编译。当然,如果您编写了您的 web 应用程序并希望至少将其作为商业产品发布,您需要一些将在后台运行的可执行文件:node app.js 与它通信。 例如,假设您的应用程序在 3000 端口上运行,具有使用引导程序构建的漂亮界面等。但是您需要能够协调所有进程的可执行文件。因此,您可以使用 C# 编写 Web 浏览器应用程序(没有浏览器控件)并使其在 bg 和打开 Web 浏览器组件后自动运行 nodejs 应用程序并转到 localhost:3000 我使用的是 node js 的 enclose 模块,它编译代码并创建可执行文件(.exe),但这会导致问题。你能在这里检查一下吗? ***.com/questions/41426213/… 【参考方案1】:

我之前也遇到过同样的问题,node js 应用程序在后台运行时关闭。现在我正在使用进程管理器2(pm2),它工作正常,如果应用程序由于任何其他原因而崩溃,它会自动重新启动。

【讨论】:

那么这对使用 enclose 模块编译的应用程序有帮助吗? 将 pm2 用于桌面应用程序目的很有趣。 (:【参考方案2】:

我得到了答案:

首先,原因是 DiskDB 数据库,它与 node webkit 不兼容,所以这就是为什么我收到原生模块错误的原因。

现在我将sqlite3 模块用于本地数据库。比 DiskDB 好。

第二,一个原因是免费版的enclose,付费版的Enclose JS模块忽略了我遇到的超时问题。

这样我就解决了我的问题。

【讨论】:

以上是关于node js - 如何创建用于商业用途的构建?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Node.js 构建交互式命令行工具

用于商业用途的维基地图

AccuWeather API 是不是可免费用于商业用途?

Node.js介绍优势用途

Node.js介绍优势用途

Node.js module.exports 的用途是啥,你如何使用它?