我搜索了一下,但找不到现有的工具。
我有一个node.js网络服务器,可以在你自己的计算机上运行,为你做一些时髦的事情。如果我可以双击MySnazzyThing.app
而不是在命令行上安装nodejs和npm并运行node mysnazzyapp.js
,那将是非常令人讨厌的。
.app
可执行文件将清空节点服务器并打开一个简单的本机webkit窗口,如果我在命令行上运行,它将显示localhost:3000
上通常会出现的内容。
然后,这个本机应用程序可以通过mac应用商店分发。和bam,一个node.js桌面应用程序。
是否存在此类工具?或者有任何技术原因,这不会像我想象的那样起作用吗?
答案 0 :(得分:90)
选项1:electron(又名atom-shell)
这是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:来自Node的Carlo chrom(ium)shell。
这将允许您将本地安装的Chrome作为可以连接到本地运行的服务器应用程序的shell启动。它需要一个本地镀铬,但非常接近要求。
选项4:MacGapNode(仅限OSX)
带节点集成的MacGap(似乎过时)
旁白:服务......
我不能将此作为OSX发言。但是很可能在NodeJS中创建后台服务安装,并在桌面上创建指向“本地”站点的链接。大多数浏览器都有一个不显示所有功能的选项(特别是我知道firefox)。
我知道您的问题特别针对OSX,但在Windows中,您可以使用NSSM将任何内容作为服务运行,并且我已将其用于Windows中基于NodeJS的服务。我认为上面的一些其他选择会更好,具体取决于您的需求。
移除:
这个答案是针对多个问题复制的,这些引用主要是为了方便更新。
答案 1 :(得分:21)
您可以使用AppJS完成此操作:https://github.com/appjs/appjs
答案 2 :(得分:8)
我建议调查Topcube,它的目标是“让节点开发人员使用HTML5 + CSS3作为GUI平台,为他们的节点服务器提供桌面GUI。” Topcube at github
答案 3 :(得分:-1)
目前有很多方法可以实现这一目标。
包装节点+ html5应用程序空间的明显赢家,目前是Electron(由Atom,VSCode,Slack,Discord等使用)。
您还可以使用打包为app的任何其他语言(使用这些语言/堆栈的工具),检查节点安装,使用node启动“server”脚本,然后启动默认浏览器(或某些Web视图)组件,通过一些其他方法),最后将位置设置为节点服务。这是一种非常轻量级且高效的方法,但不像OS那样与OS集成。
Electron的主要竞争对手是NW.js. 据我所知,NW.js的主要特征是Electron还没有(还)是编译/混淆。虽然Electron可以轻松实现自动更新。
答案 4 :(得分:-4)
你不能用bash脚本做到这一点吗?我不太了解提供细节,但这可能是要走的路。