节点 env 值不会通过进程管理器命令更改

node env value does not get changed with process manager command

我正在将 NODE_ENV=production pm2 start app 写入 运行 节点环境进入生产模式。但是不知何故,当我用 app.get('env') 提取价值时,它只给我开发价值。那么应该在 运行 节点环境中插入什么进入生产模式?

默认情况下,我们希望 PM2 在重新启动或重新加载时不会更改进程环境。所以,为了改变进程的 ENV 值,仅仅停止和启动是行不通的。

你必须 DELETE 这个过程然后重新开始(我主要这样做是因为当我改变环境时内部发生了一些重大变化,所以这个方法对我有用)

pm2 delete app
NODE_ENV=prod pm2 start app

或者,来自 Doc "If you want to update them [While restarting/reloading a process], you must use --update-env":

You want to inject a new environment variable to a process (for example DEBUG): Use DEBUG=* pm2 reload myapp --update-env