2017-01-02 48 views
3

我正在使用节点js应用程序,现在可以使用了。我想制作这个应用程序的exe文件,以便它可以用于商业用途。节点js - 如何创建用于商业用途的构建?

截至目前我已经使用附上模块使用我已编译的应用程序代码,但我发现了一些问题(应用程序在空闲状态下崩溃)。应用运行良好,无需附上或编译代码。

我已经搜索的谷歌并发现了一些交替模块等JXcore,节点WebKit和电子等,但JX芯给错误相同SO question.

节点的webkit,它的功能是不看合适因为我们需要它的可执行文件和一些dll以及我们的代码,这使得我们的软件包体积庞大。我也试过jxcore。我们使用的exe和模块的主要问题是它们使用本机模块的能力,在我的例子中是Kinect.node模块。这个模块不能被编译。我们需要一种解决方法,只将它与我们的.exe文件一起打包。 Enclose在其内置功能中提供了此解决方法。

同样看到从EncloseJS的回应,实际上只有一个人在购买时给出进一步的指示。商业用途需要购买。

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

所以,任何人都可以建议我怎么做才能使节点js代码在那里的exe文件?

谢谢!

+1

如果您需要可执行文件,那么您需要使用一些理解其定义结构的框架来正确编译。当然,如果您编写了您的webapp并希望将其作为商业产品发布,您至少需要一些可在后台运行的可执行文件:'node app.js'与之通信。 – num8er

+0

例如,假设您的应用程序在3000端口上运行,具有使用引导程序构建的漂亮界面等,但您需要可执行程序来编排所有进程。因此,您可以使用C#编写Web浏览器应用程序(无需浏览器控件),并使其在bg中自动运行nodejs应用程序,然后打开Web浏览器组件并转至localhost:3000 – num8er

+0

我正在使用包含编译代码的节点js的封闭模块和创建可执行文件(.exe),但这是造成问题。你可以在这里检查。 http://stackoverflow.com/questions/41426213/node-app-created-by-enclose-module-getting-shuts-down-on-idle-in-production-mode – Deep

回答

2

我已经得到了我的答案:

首先,原因是DiskDB数据库,这是不是与节点WebKit的兼容,所以这就是为什么我得到的本机模块的错误。

现在我正在为本地数据库使用sqlite3模块。它比DiskDB更好。

二,其中一个原因是免费版的封闭,Enclose JS模块的付费版忽略了我得到的超时问题。

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

4

我之前有过同样的问题,节点js应用程序在后台运行时关闭。现在我正在使用process manager2(pm2),它工作正常,如果应用程序由于其他原因而崩溃,它会自动重新启动。

+0

所以这将有助于在应用编译与封闭模块? – Deep

+0

将pm2用于桌面应用程序的目的很有趣。 (: – num8er