将一个node.js webapp打包成一个普通的桌面应用程序
我已经search了一下,但找不到现有的工具。
我有一个node.js的networking服务器,是专为您自己的计算机上运行,为您做一些时髦的事情。 如果我可以双击MySnazzyThing.app
而不是在命令行上安装nodejs,npm和运行node mysnazzyapp.js
,那node mysnazzyapp.js
。
.app
可执行文件会打开节点服务器并打开一个简单的本地webkit窗口,如果我在命令行上运行,它将显示通常在localhost:3000
上的内容。
然后,这个本地应用可以通过macapp store分发。 而巴姆,一个node.js桌面应用程序。
有这样的工具吗? 还是有任何技术上的原因,这不会像我想象的那样工作?
你可以使用AppJS完成这个工作: https : //github.com/appjs/appjs
选项1: 电子 (又名primefaces壳)
这是github的Atom编辑器使用的shell。 它与node-webkit非常相似,不过它将首先运行脚本,并且必须为用户创build一个视图/窗口。 还有一些其他的细微差别,但值得一看。
选项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)
MacGap与节点集成(似乎越来越陈旧了)
Aside:服务…
我不能说OSX作为一个.App,但是可以在NodeJS中创build一个后台服务安装,并且连接到桌面上的“本地”站点。 大多数浏览器有一个选项,不显示所有的function(我知道特别是Firefox的)。
我知道你的问题是特别针对OSX的,但是在windows中你可以使用NSSM作为一个服务来运行任何东西,并且我已经在windows中使用它来实现基于NodeJS的服务。 我想上面的其他一些select更好取决于你的需要,但。
删除:
-
nexe– 陈旧/无人维护 -
AppJS– 用DeskShellreplace -
DeskShell– 陈旧,网站离线 -
node-webkit – 重命名为NW.js -
XULRunner项目陷入僵局,并且非常落后。
这个答案被复制了多个问题,这些参考大多是为了方便更新。
- 将一个node.js webapp打包成一个普通的桌面应用程序
- 将一个Node.js应用程序打包为一个osx应用程序
我build议看看Topcube,它的目标是“为节点开发人员提供一种使用HTML5 + CSS3作为GUI平台的节点服务器的桌面GUI。” github上的Topcube 。
目前有很多方法可以做到这一点。
封装节点+ html5应用程序的空间明显是赢家,现在是Electron(由Atom,VSCode,Slack,Discord等使用)。
您还可以使用任何其他语言打包为一个应用程序(使用这些语言/堆栈的工具),并检查节点安装,与节点启动“服务器”脚本,然后启动默认浏览器(或一些Web视图组件,由一些其他的手段),最后设置位置到节点服务。 这是一个非常轻量且高效的方法,但是不如像Electron那样与OS集成。
电子的主要竞争对手是NW.js。 据我所知,NW.js的主要特点是,Electron还没有编译/混淆。 而Electron使自动更新变得简单。
你不能用bash脚本来做这个吗? 我不知道提供详细信息,但这可能是要走的路。