将一个Node.js应用程序打包为一个osx应用程序

我想为我们的开发人员用来pipe理其开发环境的一系列terminal命令构build一个接口。 我想尝试在node.js中构build它。

现在,我想我可以创build它作为一个HTML5 / CSS3 / JS应用程序使用快递,等等…然后想打包成一个本地的OSX应用程序。 意思是,我可以发送一个应用程序,他们双击并运行,但要么启动Chrome浏览器,并导航到命中脚本的localhost:端口服务器,或者只是启动服务器,并指示用户去url 。 无论哪种方式都很好。

我这样做是因为我需要访问本地系统,以便能够configuration许多事物并与任何数量的正在运行的(无头虚拟机)进行交互。 所以我不能简单地从服务器上提供这个服务器,让他们访问这个站点。

有任何想法吗?

谢谢,

路易斯

下面是关于安装程序(.pkg)主题的截屏video和说明:

如何为NodeJS应用程序创buildOS X pkg

至于.app,我还不确定,但是我正在追踪。

也:

  • 如何为Ubuntu Linux创build一个Node.js应用程序.deb
  • 如何为Microsoft Windows创buildNode.js应用程序.exe

选项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的服务。 我认为上面的其他一些选项更好,这取决于您的需求。


删除:

  • nexe – 陈旧/无人维护
  • AppJS – 用DeskShellreplace
  • DeskShell – 陈旧,网站离线
  • node-webkit – 重命名为NW.js
  • XULRunner项目陷入僵局,并且非常落后。

这个答案被复制了多个问题,这些参考大多是为了方便更新。

  • 将一个node.js webapp打包成一个普通的桌面应用程序
  • 将一个Node.js应用程序打包为一个osx应用程序

查看AppJS: http ://appjs.com/ – “使用HTML,CSS和Javascript为Linux,Windows和Mac构build桌面应用程序”

听起来像一个很好的比赛:)

查看http://github.com/rogerwang/node-webkit – 这是由英特尔赞助的一个项目,用于为桌面打包Node.js应用程序

具体来说,请参阅http://strongloop.com/strongblog/creating-desktop-applications-with-node-webkit/

如果从源代码编译node.js ,则每个来自节点lib文件夹的JavaScript文件都将包含在二进制文件中。 同样的方式可以把你的代码打包到二进制文件中。

我不熟悉如何创buildMac OSX软件包,但最终似乎并不困难 。 把你的自定义节点二进制打包成一个。