2017-04-05 68 views
1

我必须创建我的整个nodejs服务器应用程序的zip文件。 我应该能够解压缩并运行它,而无需安装依赖和应用程序。 它不应该是一个二进制文件。 依赖关系应该变平。如何压缩nodejs服务器应用程序?

如何做这件事情?

+0

你想使你的应用程序的.exe文件(编译后的文件)? – Deep

+0

我能够使用jx核心制作.exe文件,但我现在不需要它。我想压缩我的整个nodejs服务器相关文件,并在任何其他平台上解压缩并运行主要的.js文件。 – ams

+0

什么是“依赖关系应该扁平化”?只需使用现代版的NPM,它应该尽可能平坦。 – jfriend00

回答

0

谢谢大家的帮助。 我得到了我的问题的解决方案。 我正在使用npm包打包nodejs应用程序。 要打包应用程序的NodeJS有像摩根一些依赖,表达我们需要用NPM捆绑它有助于包括节点JS应用所需的其他模块。 有了这个,我们不需要执行npm install。 我们只需要安装bundle,然后在package.json中包含bundleDependencies字段,包括所需模块的名称。 然后执行然后运行命令npm pack。它会创建一个tar文件,只需将该文件复制到其他文件夹中,然后解压缩并运行服务器启动文件。 你要去哪里运行文件的NodeJS的地方,有应用程序的NodeJS应安装

0

我想你可能会找这样的:https://github.com/nexe/nexe

Nexe是一个命令行工具,编译你的Node.js应用程式到一个可执行文件。

+0

OP还没有确定,要么他正在寻找.exe或只有zip文件,那么你怎么能建议他nexe? – Deep

+0

我不想要一个exe文件。我想要一个zip文件。所以,我可以解压缩任何其他系统的文件,并在那里运行我的服务器文件,它是.js文件。但是,没有安装依赖关系。 – ams

+0

好的,但您的应用如何运行而不安装依赖关系?这意味着您将不得不将所有的依赖打包到您的zip文件中,并且可以像Trott先生上面所建议的那样完成。另外,你解压的地方也必须有nodejs。 –

1

一般来说,Node.js的应用程序已安装在项目的根目录node_modules它的依赖。

因此,在运行npm install(或npm install --production)之后,您应该能够压缩项目目录,这应该是您所需要的。

如果任何node_modules你的依赖是天然的插件,那么你将不能够在不同的体系结构或OS安装它们。如果有本地插件,则还需要确保目标计算机的node版本与您创建zip文件的计算机的版本相同。 (无论如何,如果可以的话,确保目标计算机上的节点版本与源计算机的版本相同是个好主意。)

如果按上述方法执行,目标主机的一个明显要求是node已经安装在那里。不知道你的用例是否可以,但听起来可能是这样吗?

相关问题