【问题标题】:Deploy NodeJS server on production server with grunt使用 grunt 在生产服务器上部署 NodeJS 服务器
【发布时间】:2015-04-08 17:04:07
【问题描述】:

我目前正在使用 NodeJS 开发一个 Web 应用程序。

Grunt 用于部署,我曾经使用以下 shell 命令运行服务器。

 NODE_ENV="development" grunt

这会自动合并、缩小并启动节点服务器。

在生产服务器上,我运行以下命令在生产环境中启动服务器。

 NODE_ENV="production" grunt

这会启动服务器,但是当我断开与服务器(来自 ssh)的连接时,它会在一段时间后停止。

是否可以使用 grunt-deploy npm 保持 NodeJS 服务器运行?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    您将不得不守护节点进程。有很多方法可以做到这一点,还有很多库可以为您处理这个问题,例如 foreverpm2

    至于具体如何执行此操作,这取决于许多因素,例如 grunt 实际在做什么、库的可用性等。您可以在 Grunt 中使用 grunt-forever 来使用 forever(这似乎不过要成为一个旧图书馆)。

    PM2 也有documentation on deployments。您可以将script 更新为/path/to/grunt 并将任务作为参数传递给运行。

    最简单的解决方案可能是使用

    nohup NODE_ENV=production grunt &
    

    ...但这在过去对我来说并没有始终如一。

    【讨论】: