首页 > 解决方案 > 启动 PM2 时从 dotenv 文件加载变量

问题描述

我以这种方式使用 PM2 将我的应用程序实例作为package.json脚本启动:

"start:pm2": "pm2 start -i max node myapp.js"

我发现并非团队中的所有成员都希望max在开发时总是将其用作实例数的值,而是更喜欢使用一些较低的值。

为了不更改package.json,我最好让他们更改.env文件中的值,因为我们已经使用它,以便将其中的值用作 pm2 的参数。

我知道我可以创建一个包装器 js 或 bash 脚本来从.env文件加载变量并将其传递给 pm2,但最好有一个没有它的解决方案。

我怎样才能做到这一点?

标签: javascriptnode.jspm2

解决方案


您可以创建一个ecosystem.config.js文件并在“env:”属性下声明您的环境变量NODE_APP_INSTANCE,在您的情况下,可用于设置实例数:

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

然后调用pm2 startpm2 start /path/to/ecosystem.config.js从其他文件夹加载生态系统。


推荐阅读