首页 > 解决方案 > 如何将 NODE_ENV=production 传递给 pm2?

问题描述

我已经部署了这个节点应用程序并且运行良好NODE_ENV=production yarn start

我可以使用妖魔化应用程序

pm2 start npm -- start

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

当我使用

pm2 start npm -- start NODE_ENV=production

它仍然从development配置开始。

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

apps:
  - script   : index.js
    watch: true
    instances: 4
    env    :
      NODE_ENV: production

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

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

标签: node.jspm2

解决方案


您可能会遇到这种情况的原因是因为您会从pm2一次开始development。现在它将使用该环境,直到您使用它为止kill。遵循这些步骤应该会有所帮助

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

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

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


推荐阅读