NodeJS应用程序的最终用户分布

我正在寻找正确的方式来分发/部署node.js应用程序,该应用程序将作为用户计算机上的小型Web服务器运行。

是否有一个存根方法或安装脚本或一个“安装向导”,可以下载所有node_modules依赖关系,下载最新的nodejs二进制文件,设置环境等…或者我必须散布一切包装? 有没有什么指导呢?

编辑:

你可以安装nodenpm ,通过在命令行运行npm install下载你的依赖关系(首先在你的package.json声明它们), 然后用户才能运行你的脚本。 这就是你如何在Node.js中进行开发,或者部署到开发服务器。 请参阅使用npm 。 你可以自动化一个shell脚本,如果这是你在之后。

但是,将程序分发给最终用户可能不是最好的方法。 Linux用户习惯于一个包(例如.deb),Windows用户习惯于一个.exe或一个安装向导。

这就是为什么我推荐下面的工具。 我也认为你是针对Windows,因为这是一个问题是类似unix的环境。

如果你想要一个文件(.exe), pkg和nexe是为了这个目的而devise的。 开发人员使用这些Node.js工具将JavaScript代码编译成单个可执行的二进制文件,便于最终用户和Windows部署。 生成的.exe文件非常轻,不需要在最终用户的计算机上安装节点。

电子与电子打包器一起可以产生安装向导,但即使是最小的程序也会安装大量的文件。 你的程序将包括所有的nodewebkit ,这就是为什么它产生沉重的安装。

NSIS也可以创build一个设置向导,它很简单,并且很好地执行常见的事情(复制文件,运行shell脚本)。


原始答案:

简单的回答是: 不是真的

你必须记住,Javascript一直是被解释的,所以直到最近,从未像其他语言那样编译为二进制文件。 一些探索一直在进行,但基本上你不会得到一个“良好的做法”的答案。

漫长的答案可能是 ,对于一些有限的使用情况:

  • 有这个新鲜的新pkg ,这看起来很有前途。

  • 有一段时间nexe ,它对一些用例(也许是你的)有用。 本机/编译模块仍然是一个问题。

  • 电子可能会用于一个完整的应用程序与一个重要的用户界面,但它不是轻或紧凑。

您总是可以使用browserify将所有代码与您使用的模块进行连接和丑化,然后使用类似NSIS的安装程序来设置节点和脚本。 然而,本机模块仍然是一个问题。