web-dev-qa-db-fra.com

Comment passer NODE_ENV = production à pm2?

J'ai cette application de nœud déployée et fonctionne correctement avec NODE_ENV=production yarn start.

Je peux diaboliser l'application en utilisant

pm2 start npm -- start

mais il est par défaut NODE_ENV=development config.

Et quand j'utilise

pm2 start npm -- start NODE_ENV=production

Il commence toujours par development config.

J'ai aussi essayé de passer l'env en utilisant un process.yml fichier

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

mais pm2 start npm -- start process.yml charge toujours les configurations de développement.

Comment puis-je réparer cela?

7
narad

La raison pour laquelle vous pourriez être confronté à cela est que vous auriez commencé pm2 avec development une fois. Maintenant, il utilisera cet env jusqu'à ce que vous le kill. Suivre ces étapes devrait aider

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

Vous pouvez aussi utiliser --update-env. De la documents officiels

Par défaut, nous voulons que PM2 ne change pas l'environnement de processus lors du redémarrage ou du rechargement afin qu'ils soient immuables. Si vous souhaitez les mettre à jour, vous devez utiliser --update-env:

9
AbhinavD