我正在尝试找到一种方法来使用我在没有安装node.js的计算机上创建的命令行nodejs应用程序。换句话说,如何将我的应用程序与node.js打包在一起,以避免用户已经安装了node.js.
典型用例是:我运行应用程序,应用程序使用随应用程序提供的节点核心(或应用程序检查是否安装了node.js,如果没有,则下载并自动安装)
你有什么想法吗?
答案 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
答案 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。