Node.js 如何将节点_ENV=生产传递给pm2?

Node.js 如何将节点_ENV=生产传递给pm2?,node.js,pm2,Node.js,Pm2,我已经部署了NODE\u ENV=production warn start,并且运行良好 我可以使用 pm2启动npm——启动 但是它默认为NODE\u ENV=developmentconfig 当我使用 pm2启动npm——启动节点_ENV=生产 它仍然以developmentconfig开始 我还尝试使用process.yml文件传递env apps: - script : index.js watch: true instances: 4 env

我已经部署了
NODE\u ENV=production warn start
,并且运行良好

我可以使用

pm2启动npm——启动

但是它默认为
NODE\u ENV=development
config

当我使用

pm2启动npm——启动节点_ENV=生产

它仍然以
development
config开始

我还尝试使用
process.yml
文件传递env

apps:
  - script   : index.js
    watch: true
    instances: 4
    env    :
      NODE_ENV: production
但是pm2 start npm--start process.yml仍然加载开发配置


我怎样才能解决这个问题

您可能会面临这种情况的原因是,您可能会用
开发
一次启动
pm2
。现在它将使用该env,直到您
杀死它。遵循这些步骤应该会有所帮助

  • /node\u modules/.bin/pm2 kill
  • NODE_ENV=production./NODE_modules/.bin/pm2 start server.js
  • 您还可以使用
    --update env
    。从

    默认情况下,我们希望PM2在运行时不会改变流程环境 重新启动或重新加载,使其不可变。如果你想更新 如果需要,则必须使用--update env:

    试试这个: 导出节点_ENV=production&&pm2 start server.js

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

    下面这句话帮助了我!由于和

    以及
    /node\u modules/.bin/pm2 kill
    导致
    没有这样的文件或目录
    。还不确定如何使用我的命令
    pm2 start npm--start
    来使用
    --update env
    。我尝试了pm2 start npm--start--update env
    ,但它仍然在开发模式下运行。我甚至卸载了pm2并重新安装了它,但随后
    pm2启动进程。yml
    仍然运行开发模式。您必须在全局范围内安装了
    pm2
    。只需执行
    pm2 kill
    NODE_ENV=production pm2 start server.js
    只需执行此操作。。首先删除pm2的当前实例。您可以使用
    pm2删除您的应用程序.js
    ,然后执行
    NODE\u ENV=production pm2启动您的应用程序.js
    。这应该行得通。