如何使用Node.js创build一个独立的命令行应用程序

我试图find一种方法来使用我在没有安装node.js的计算机上创build的命令行nodejs应用程序。 换句话说,如何将我的应用程序与node.js打包在一起,以避免用户安装node.js。

典型的用例是:我运行应用程序,应用程序使用应用程序提供的节点核心工作(或者应用程序检查是否安装了node.js,如果没有,则自动下载并安装)。

你有什么主意吗?

JXcore允许你这样做。

一旦你在Windows(或Unix系统)上安装了JXcore,你只需要运行:

jx package app.js "myAppName" -native 

这将产生一个.exe(或unix可执行文件,如果该命令是在unix系统上运行的话)文件,你可以分发并且可以在没有任何外部依赖的情况下执行(你甚至不需要系统上的JXcore和Node.js) 。

以下是关于该function的文档: http : //jxcore.com/packaging-code-protection/#cat-74

(重复的https://stackoverflow.com/a/27551233/810830

检查Node.js许可证 ,似乎它是麻省理工学院许可的,所以这样做是完全合法的。

我假设你的目标是Windows或Mac,因为在Linux上,你可以发布一个依赖特定版本的Node.js的包,并提供一个脚本来添加一个.deb.rpm免费库Node.js的预编译版本

您需要获取您感兴趣的版本的源代码,并将其构build为您所select的平台。 我记得,构build好的可执行文件可以直接运行而不需要安装,但是假设某些库在$PATH (OpenSSL是许可证中明确提到的那个,而不是静态编译成二进制文件)上可用。

阅读Visual Studio构build脚本 ,看起来您需要为Windows安装Python来构build.exe 。 我怀疑 (但不知道),可执行文件本质上是独立的Windows,所以你可以绑定你的Javascript代码,并写一个简单的batch file,让它在该平台上运行。 我不知道如何制作一个Windows .msi安装程序,但是vcbuild.bat文件包含了生成一个的能力,所以你可以在他们的代码上进行操作。

Python,Perl和Tcl都有一些实用程序,它们将为脚本创build一个可执行的给定平台。 (我不知道Ruby,PHP等) – 到目前为止,没有这样的实用程序存在nodejs,但我也会对现有的一个感兴趣。

在节点中有一个构build选项,让它在启动时运行指定的脚本,所以有一些pipe道在那里。

有几个,但Node-webkit看起来像目前明确的赢家。 以前的替代appjs已被弃用,下面是相关的推文 :

AppJS不再作为node-webkit( https://github.com/rogerwang/node-webkit …)完成目的。 谢谢大家支持我们:(

看看已经写好的应用程序。