如何捆绑NodeJs应用程序?

时间:2017-11-22 04:25:08

标签: node.js mongodb

考虑我使用Express和MongoDB应用程序完成了NodeJs。我可以捆绑我的应用程序以将其提供给客户端,但在这种情况下,客户端必须安装所有必需的npm模块并更改mongoDB连接URL。所以要解决这个问题:

有没有其他方法来捆绑我的应用程序,所以客户端不需要安装任何npm模块来运行应用程序?如果是,那么客户端如何连接到他的mongodb?

2 个答案:

答案 0 :(得分:5)

Zeit的

pkg非常适合我。它将所有内容捆绑到一个终端运行的单个可执行文件中。这使得分发非常容易。

要连接到Mongo实例,您必须拥有用户编辑的某种配置文件。我建议放入用户数据文件夹(Mac上的应用程序支持和Windows上的AppData),但您可以将其放在打包的可执行文件旁边。

答案 1 :(得分:0)

您可以使用Zeit的pkg并按照以下步骤操作:

npm i pkg -g

然后在NodeJS项目的JSON包中包含以下内容:

"pkg": {
"scripts": "build/**/*.js",
"assets": "views/**/*"
}
"main": "server.js"

在内部主要参数中写入要用作包入口点的文件的名称。

之后,在NodeJS项目的终端中运行以下命令

pkg server.js --target=node12-linux-x64

或者您可以从上方删除目标参数以构建适用于Windows,Linux和Mac的软件包。

生成软件包后,您必须授予写权限:

chmod 777 ./server-linux

然后您可以在终端中通过以下方式运行它

./server-linux