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

时间:2012-03-15 17:16:23

标签: node.js command-line

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

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

你有什么想法吗?

4 个答案:

答案 0 :(得分:1)

JXcore允许您这样做。

在Windows(或unix系统)上安装JXcore后,您只需运行:

jx package app.js "myAppName" -native

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

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

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

答案 1 :(得分:0)

检查Node.js License,它似乎是MIT许可的,所以这样做是完全合法的。

我假设您的目标是Windows或Mac,因为在Linux上您可以发布一个依赖于特定版本的Node.js的包,并提供一个脚本来为{{添加各种免费存储库之一1}}或.deb Node.js的预编译版本。

您需要获取您感兴趣的版本的源代码,并为您选择的平台构建它。我记得,构建的可执行文件可以在没有安装的情况下直接运行,但它假设某些库在.rpm上可用(OpenSSL是他们在许可证中明确提到的那个,而不是静态编译到二进制)。

Reading the Visual Studio build script,看起来你需要为Windows安装Python才能构建$PATH。我怀疑(但不确定)可执行文件基本上是Windows独立的,因此您可以将Javascript代码与它捆绑在一起并编写一个简单的批处理文件以使其在平台。我不知道如何制作Windows .exe安装程序,但vcbuild.bat文件包括生成一个安装程序的能力,因此您可以依靠他们的代码来执行此操作。< / p>

答案 2 :(得分:0)

Python,Perl和Tcl都有实用程序,它们将获取脚本并为给定平台创建可执行文件。 (我不知道Ruby,PHP等) - 到目前为止,nodejs还没有这样的实用程序,但我也会对现有的实用程序感兴趣。

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

答案 3 :(得分:0)

目前很少有Node-webkit看起来像是明显的赢家。之前的替代appjs已弃用,以下是相关的tweet

  

由于node-webkit(https://github.com/rogerwang/node-webkit ...)已达到目的,因此不再维护AppJS。感谢大家支持我们:(

在已编写的应用中有一个look