我正在寻找分发/部署node.js应用程序的正确方法,该应用程序将作为用户计算机上的小型Web服务器运行。
是否存在存根方法或安装脚本或“安装向导”,它将下载所有node_modules
依赖项,下载最新的nodejs二进制文件,设置环境等...或者我必须批量分发它一切都挤满了?有没有为此目的的指南?
答案 0 :(得分:1)
编辑:
您可以安装node
和npm
,通过在命令行中运行npm install
来下载您的依赖项(首先在package.json
中声明它们)然后< / em>用户可以运行您的脚本。这是您在Node.js中进行开发或部署到开发服务器的方式。见using npm。如果您正在使用shell脚本,则可以使用shell脚本自动执行该操作。
但是,在向最终用户分发程序时可能不是最佳方法。 Linux用户习惯于包(例如.deb),Windows用户习惯使用.exe或安装向导。
这就是我推荐以下工具的原因。我还假设你的目标是Windows,因为这是一个类似unix的环境。
如果您想要单个文件(.exe),则为此目的制作pkg和nexe。开发人员使用这些Node.js工具将编译 JavaScript代码编译成单个可执行二进制文件,以方便最终用户和Windows部署。生成的.exe文件非常轻,不需要在最终用户的计算机上安装节点。
Electron和electron-packager可以生成安装向导,但即使是最小的程序也会安装很多文件。您的程序将包含所有node
和webkit
,这就是它产生大量安装的原因。
NSIS也可以创建一个设置向导,它很简单并且很常见(复制文件,运行shell脚本)。
原始答案:
简短回答是:不是。
你必须记住,Javascript一直被解释,所以直到最近才编译成二进制文件,就像你可能使用其他语言一样。一些探索已经进行,但基本上你不会得到一个良好的实践&#34;答案。
对于一些有限的用例,答案很长,可能:
新鲜的 pkg 正是如此,看起来很有希望。
有一段时间 nexe ,它适用于某些用例(也许是你的用户)。然而,本机/编译模块仍然是一个问题。
Electron 可能适用于具有重要用户界面的完整应用,但它不轻巧或紧凑。
您可以随时使用browserify将所有代码与您使用的模块连接和uglify,然后使用 NSIS 之类的安装程序来设置节点和脚本。然而,原生模块仍然是个问题。