pm2不适用于实验模块标志

时间:2018-09-25 13:44:11

标签: javascript node.js pm2 es6-modules

我通过将--experimental-modules参数添加到Node来使用ES6模块。运行node --experimental-modules app.mjs可以正常工作。但是,当我使用pm2运行相同的命令时,出现以下错误:

  

错误[ERR_REQUIRE_ESM]:必须使用导入来加载ES模块

我当前的pm2配置文件如下:

"apps": [
 {
  "name": "api",
  "script": "app.mjs",
  "exec_mode": "cluster",
  "instances": "max",
  "node_args": "--experimental-modules",
  "env": {
    variables here..
  }
 }
],

我也曾尝试像这样使用esm:

"node_args": "-r esm"

在两种情况下,它们都返回相同的[ERR_REQUIRE_ESM]错误


有人对将es6模块与pm2结合使用有解决方案吗?或者现在有问题吗?

2 个答案:

答案 0 :(得分:1)

此问题的解决方法:

  • 在package.json文件中,添加一个新脚本:

  "scripts": {
    //Add this one:
    "safestart":"node --experimental-modules app.mjs"
  },

  • 运行此PM2命令:

pm2 start npm -- run safestart

答案 1 :(得分:0)

如果您不想更新节点,或者其他方法正在使用esm package

查看我的答案here.