如何将NODE_ENV = production传递给pm2?

nar*_*rad 7 node.js pm2

我已部署了此节点应用程序,并与运行良好NODE_ENV=production yarn start

我可以使用以下方式妖魔该应用程序

pm2 start npm -- start

但随后默认为NODE_ENV=development配置。

当我使用

pm2 start npm -- start NODE_ENV=production

它仍然以developmentconfig 开头。

我也尝试使用process.yml文件传递环境

apps:
  - script   : index.js
    watch: true
    instances: 4
    env    :
      NODE_ENV: production
Run Code Online (Sandbox Code Playgroud)

pm2 start npm -- start process.yml仍会加载开发配置。

我怎样才能解决这个问题?

Abh*_*avD 9

你可能会面临这种情况的原因是因为你已经开始pm2development一次。现在它将使用该环境直到您使用kill它。遵循以下步骤应该会有所帮助

  1. ./node_modules/.bin/pm2 kill
  2. NODE_ENV=production ./node_modules/.bin/pm2 start server.js

您也可以使用--update-env。来自官方文档

默认情况下,我们希望PM2在重新启动或重新加载时不会更改过程环境,因此它们是不可变的。如果要更新它们,则必须使用--update-env:

  • 您必须已全局安装了“ pm2”。只需执行`pm2 kill`和`NODE_ENV = production pm2启动server.js` (3认同)