【问题标题】:pm2 cannot start express applicationpm2 无法启动 express 应用
【发布时间】:2021-06-24 00:39:19
【问题描述】:

我编写了一个简单的 Express 应用程序。它使用“npm start”正确运行。 package.json 中的脚本是这样的:

"type": "module",
"scripts": {
  "start": "src/bin/www.js"
}

但我不能这样执行:

pm2 start ./src/bin/www.js

我检查了 pm2.log。它显示“有太多不稳定的重启(16)”。

然后用 pm2-dev 运行它:

pm2-dev start ./src/bin/www.js

报错:

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module:

Pm2 不能很好地用于导入/导出?节点版本为14.16.0。

【问题讨论】:

    标签: node.js express pm2


    【解决方案1】:

    首先确定你是否有以下两点:

    1. 节点版本 >= 14。它仅适用于最新版本的节点。
    2. 确保您的 package.json 包含“type”行:“module”,如果没有此行节点假定您想使用 Common JS 模块而不是 ESM。

    如果两者都是真实的并且仍然无法正常工作,那么您可能会成为关注 github 问题的受害者

    https://github.com/Unitech/pm2/issues/4540

    现在你可以尝试用 babel 运行它!

    【讨论】:

    • 它不起作用。节点版本为 14.16.0 和“类型”:“模块”。 Express 应用程序可以使用“npm run start”运行,但不适用于 pm2。
    • @Henry True,我相信 github 中存在这个问题,它也有最近的 cmets github.com/Unitech/pm2/issues/4540
    • 谢谢!是的。然后我使用 Babel 构建并运行成功。
    • 好的,我将编辑我的答案,然后将 github 链接添加到它!你使用 babel 的事实也是现在的答案
    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多