如何将一个node.js webapp打包为普通的桌面应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

我有一个node.js web服务器,它可以在自己的计算机上运行如果我可以双击MySnazzyThing.app而不是安装nodejs和npm并node mysnazzyapp.js在命令行上运行,那将会非常棒。

.app可执行文件会将节点服务器后台打包并打开一个简单的本地webkit窗口,该窗口将显示localhost:3000如果我在命令行上运行时通常会打开的内容。

然后,这个本地应用程序可以通过mac应用程序商店进行分发。和bam,一个node.js桌面应用程序。

提问于
用户回答回答于
用户回答回答于

选项1:electron(又名原子壳)

这是github的Atom编辑器使用的shell。它与node-webkit非常相似,不过它将首先运行脚本,并且必须为用户创建一个视图/窗口。还有一些其他的细微差异,但值得一看。

选项2:NW.js以前的node-webkit

要点在于,它基本上扩展了JS引擎,供您编写支持节点扩展对象模型和模块的基于Web的应用程序......然后将package.json start.html模块和js文件打包成zip文件(带.nw扩展名)并用nw(.exe)运行它..有windows,mac和linux版本可用。

选项3:thrust(节点适配器)

这是一个真正失去约束的webkit / chrome与一个ipc频道启动应用程序。您可以使用消息通道,也可以将应用程序编写为节点中更传统的服务器端应用程序,并控制窗口启动。这可能适合你。

Thrust已经绑定了多种语言。我只把它放在MacGapNode之前,因为我首先倾向于使用跨平台选项。

选项4:MacGapNode(仅限OSX)

Aside:services

我不能说OSX是一个.App应用程序,但可以在NodeJS中创建后台服务安装并连接到桌面上的“local”站点。大多数浏览器可以选择不显示所有功能(我知道特别是firefox)。

我知道你的问题特别针对OSX,但是在Windows中,你可以使用NSSM来运行任何服务,并且我已经在Windows中使用它来实现基于NodeJS的服务。我认为上面的其他一些选项更好取决于需求。

扫码关注云+社区

领取腾讯云代金券