PM2 集群模式 - 找不到模块 'dotenv/config'

3

我正在尝试使用下面的配置文件在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 APIs 进程中的 pm2 list 命令时出现错误,但是 Node 批处理进程可以正常工作。当我检查 ~/.pm2/pm2.logs 文件时,发现以下信息:

Cannot find module 'dotenv/config'

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

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

PM2: v4.4.0 NodeJS: v8.12.0

2个回答

1
经过长时间的寻找和试验,似乎它在集群模式下不起作用,但在fork模式下可以。尝试在fork模式下运行它。

1
尝试通过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'],
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接