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

lui*_*sgo 17 javascript macos node.js

我想为我们的开发人员用来管理他们的开发环境的一系列终端命令构建一个接口.我想尝试在node.js中构建它.

现在,我想我可以使用express等创建它作为HTML5/CSS3/JS应用程序...然后想将其打包为本机osx应用程序.意思是,我可以发送它们的应用程序,他们双击并运行但是要么启动Chrome浏览器并导航到localhost:命中脚本的端口服务器,或者只是启动服务器并指示用户转到URL .无论哪种方式都没关系.

我这样做是因为我需要访问本地系统才能配置许多东西并与任意数量的运行(无头虚拟机)进行交互.所以我不能简单地从服务器上提供服务并让他们访问该网站.

有任何想法吗?

谢谢,

路易斯

Tra*_*er1 12

选项1:电子(又称原子壳)

这是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:推力(节点适配器)

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

Thrust具有多种语言的绑定.我把它放在MacGapNode之前只是因为我首先支持跨平台选项.


选项4:MacGapNode(仅限OSX)

带节点集成的MacGap(似乎变得陈旧)


旁白:服务......

我不能在OSX上代表OSX,但很可能在NodeJS中创建后台服务安装,并在桌面上创建指向"本地"站点的链接.大多数浏览器都有一个不显示所有功能的选项(特别是我知道firefox).

我知道你的问题特别是OSX,但是在Windows中你可以使用NSSM来运行任何服务,我已经将它用于Windows中基于NodeJS的服务.我认为上面的一些其他选项会更好,具体取决于您的需求.


删除:


这个答案是针对多个问题复制的,这些引用主要是为了方便更新.


Coo*_*J86 8

这是关于安装程序(.pkg)主题的截屏视频+写作:

如何为NodeJS应用程序创建OS X pkg

至于.app,我还不确定,但我在路上很热.

也:


The*_*ppo 2

如果从源代码编译 Node.js,Node.jslib文件夹中的每个 JavaScript 文件都将包含在二进制文件中。同样的方式可以将您的代码打包到二进制文件中。

我不熟悉Mac OS X包是如何创建的,但最终似乎并不。只需将您的自定义 Node.js 二进制文件打包到其中即可。