我想为我们的开发人员用来管理他们的开发环境的一系列终端命令构建一个接口。我想尝试在node.js中构建它。
现在,我想我可以使用express等创建它作为HTML5 / CSS3 / JS应用程序......然后想将它打包为本机osx应用程序。意思是,我可以发送它们的应用程序,他们双击并运行但是要么启动Chrome浏览器并导航到localhost:命中脚本的端口服务器,或者只是启动服务器并指示用户转到URL 。无论哪种方式都没问题。
我这样做是因为我需要访问本地系统才能配置许多内容并与任意数量的正在运行的(无头虚拟机)进行交互。所以我不能简单地从服务器上提供服务并让他们访问该网站。
有什么想法吗?
谢谢,
路易斯
答案 0 :(得分:8)
选项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(似乎过时)
旁白:服务......
我不能以.App的形式代表OSX,但很可能在NodeJS中创建后台服务安装以及指向" local"的链接。桌面上的网站。大多数浏览器都有一个不显示所有功能的选项(特别是我知道firefox)。
我知道您的问题特别针对OSX,但在Windows中,您可以使用NSSM将任何内容作为服务运行,并且我已将其用于Windows中基于NodeJS的服务。我认为上面的一些其他选择会更好,具体取决于您的需求。
移除:
这个答案是针对多个问题复制的,这些引用主要是为了方便更新。
答案 1 :(得分:7)
答案 2 :(得分:3)
查看AppJS:http://appjs.com/ - “使用HTML,CSS和Javascript为Linux,Windows和Mac构建桌面应用程序”
听起来很不错:)
答案 3 :(得分:3)
查看http://github.com/rogerwang/node-webkit - 由英特尔赞助的项目,用于打包桌面的Node.js应用程序
具体来说,请参阅http://strongloop.com/strongblog/creating-desktop-applications-with-node-webkit/
答案 4 :(得分:2)
如果从源代码编译node.js
,则节点lib
中的每个JavaScript文件都将包含在二进制文件中。同样的方法可以将你的代码打包成二进制文件。
我不熟悉如何创建Mac OSX软件包,但最后它似乎不是very hard。只需将自定义节点二进制文件打包成一个。
答案 5 :(得分:0)
只需使用pkg https://www.npmjs.com/package/pkg 它可以在多个操作系统上使用