问题描述
我编写了一个简单的 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。
解决方法
首先确定你是否有以下两点:
- 节点版本 >= 14。它仅适用于最新版本的节点。
- 确保您的 package.json 包含一行“type”:“module”,如果没有此行,节点假定您要使用 Common JS 模块而不是 ESM。
如果两者都正确并且仍然无法正常工作,那么您可能是关注 github 问题的受害者
https://github.com/Unitech/pm2/issues/4540
现在你可以尝试用 babel 运行它!