web-dev-qa-db-ja.com

NODE_ENV = productionをpm2に渡す方法は?

このノードアプリ があり、NODE_ENV=production yarn startで正常に実行されます。

を使用してアプリを悪魔することができます

pm2 start npm -- start

ただし、デフォルトはNODE_ENV=development configになります。

そして、私が使用するとき

pm2 start npm -- start NODE_ENV=production

まだdevelopment configで始まります。

また、process.ymlファイルを使用してenvを渡そうとしました

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

ただし、pm2 start npm -- start process.ymlは引き続き開発設定をロードします。

どうすれば修正できますか?

7
narad

これに直面するかもしれない理由は、pm2developmentで一度開始したからです。これで、kill itまでそのenvを使用します。これらの手順に従うと役立つはずです

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

--update-envを使用することもできます。 公式ドキュメント から

デフォルトでは、PM2は再起動または再読み込み中にプロセス環境を変更しないため、不変です。それらを更新する場合は、--update-envを使用する必要があります。

9
AbhinavD