如何将NODE_ENV=production传递给pm2?

6rvt4ljy  于 2022-12-18  发布在  Node.js
关注(0)|答案(6)|浏览(160)

我已经部署了this node app,并在NODE_ENV=production yarn start上运行良好。
我可以使用以下方法妖魔化应用程序
pm2 start npm -- start
但默认为NODE_ENV=development配置。
当我使用
pm2 start npm -- start NODE_ENV=production
它仍然以development配置开始。
我还尝试使用process.yml文件传递env

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

但是pm2 start npm -- start process.yml仍然加载开发配置。
我该怎么补救呢?

ldfqzlk8

ldfqzlk81#

您可能会遇到这种情况,因为您曾经使用development启动pm2,现在它将使用该env,直到您使用kill它。

  1. ./node_modules/.bin/pm2 kill
  2. NODE_ENV=production ./node_modules/.bin/pm2 start server.js
    您也可以使用--update-env。从official docs
    默认情况下,我们希望PM2在重新启动或重新加载时不改变进程环境,这样它们是不可变的。如果你想更新它们,你必须使用--update-env:
mznpcxlj

mznpcxlj2#

试试这个:

export NODE_ENV=production&&pm2 start server.js
sdnqo3pr

sdnqo3pr3#

export NODE_ENV=production && pm2 start ecosystem.config.js

下面这行帮助了我!感谢#mehdi parastar#abhinavd

tnkciper

tnkciper4#

试试这个,如果你使用的是pm2,下面的代码适合我
sudo NODE_ENV=生产pm2启动应用程序. js

f5emj3cl

f5emj3cl5#

您可以使用以下命令(带双引号)求解:

sudo pm2 start "NODE_ENV=production yarn start"
rkkpypqq

rkkpypqq6#

你只要这样做-〉

NODE_ENV=production pm2 restart <id|name> --update-env

您可以在这里查看文档:PM2 - Update Env Variables docs

相关问题