考虑我使用Express和MongoDB应用程序完成了NodeJs。我可以捆绑我的应用程序以将其提供给客户端,但在这种情况下,客户端必须安装所有必需的npm模块并更改mongoDB连接URL。所以要解决这个问题:
有没有其他方法来捆绑我的应用程序,所以客户端不需要安装任何npm模块来运行应用程序?如果是,那么客户端如何连接到他的mongodb?
答案 0 :(得分:5)
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