【问题标题】:PM2 Cluster Mode - Cannot find module 'dotenv/config'PM2 集群模式 - 找不到模块 'dotenv/config'
【发布时间】:2020-09-22 04:22:39
【问题描述】:

我正在尝试使用 PM2 在集群模式下运行多个应用程序,配置文件如下:

    "apps": [
        {
            "name": "Node APIs",
            "script": "./server",
            "watch": true,
            "node_args": "-r dotenv/config",
            "instances": "max",
            "exec_mode": "cluster"
        },
        {
            "name": "Node Batch",
            "script": "./batch_process",
            "watch": true,
            "node_args": "-r dotenv/config"
        }
    ]
}

Node API 进程在 pm2 list 中获取 errored,而 Node Batch Process 工作正常。当我检查~/.pm2/pm2.logs 时,它说:

Cannot find module 'dotenv/config'

我已经在本地和全局安装了dotenv 模块,但仍然显示相同的错误。

PM2 集群模式在我的本地机器上也可以正常工作,但在 AWS EC2 上显示上述错误。我错过了什么?

PM2: v4.4.0 NodeJS: v8.12.0

【问题讨论】:

    标签: node.js environment-variables pm2


    【解决方案1】:

    经过多年的寻找和实验,它似乎在集群模式下不起作用,但在 fork 模式下却可以。尝试在 fork 模式下运行它。

    【讨论】:

      【解决方案2】:

      尝试通过 node_args 参数在 node_modules 中指定你的包的完整路径,即使你已经在 cwd 中指定了它。

      它将在集群模式下工作。

         {
            name: 'app-api',
            script: '/full/path/to/app/api.js',
            instances: 2,
            exec_mode: 'cluster',
            cwd: '/full/path/to/app',
            node_args: ['-r', '/full/path/to/app/node_modules/dotenv/config'],
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-04
        • 1970-01-01
        • 2020-08-04
        • 2022-01-23
        • 2018-01-17
        • 2017-01-22
        • 2020-01-10
        相关资源
        最近更新 更多