将环境变量传递给 pm2 不起作用

Passing environment variable to pm2 is not working

我在使用 babel 的节点 js 中有两个 API,我有一个 package.json 命令用于使应用程序正常工作,这是命令:

"build": "del-cli dist/ && babel src -d dist --copy-files",
"serve": "cross-env NODE_ENV=production node dist/index.js",
"start:noupdate": "cross-env NODE_ENV=development babel-node src/index.js",
"start:serve": "cross-env NODE_ENV=production node dist/index.js",

我有两个域,一个是 https://api.website1.com.br and another is https://website2.com.br/api

它们具有相同的 env 文件名,但每个数据库都有另一个数据,即 .env.production 和 .env.development

当我制作这个 "yarn build" 时,我的 Linux 执行这个命令:

"build": "del-cli dist/ && babel src -d dist --copy-files",

当我尝试在我的真实网络服务器上进入生产模式时,这工作正常,我从项目转到文件夹并运行此命令使应用程序与 PM2 联机:

pm2 start npm -- run-script start:serve NODE_ENV=production

这将使这个命令起作用:

"cross-env NODE_ENV=production node dist/index.js"

应用程序 运行 很好,但我有一个问题他只有 运行 一个并且没有创建新的 PM2 应用程序他只是重新启动我开始的。

例如,如果我转到我的 https://api.website1.com.br 和 运行 中的文件夹,这个命令首先在他启动,但我转到另一个他没有启动但已经提前重新加载我的应用程序不创建新应用程序,我做错了什么?

我设法使用 pm2 生态系统 来完成这项工作,这是我在 http://pm2.keymetrics.io/docs/usage/application-declaration/

的文档中找到的

我配置了默认文件,给APP起个名字:

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
}

并使用此命令pm2 start ecosystem.config.js 现在可以正常工作了,我post在这里想知道是否有人遇到同样的问题