Node.js PM2在nodejs中使用ES模块时崩溃

Node.js PM2在nodejs中使用ES模块时崩溃,node.js,pm2,Node.js,Pm2,我已在package.json中使用此键值对启用ES模块“type”:“module”我不必在最新版本的node中使用“实验”标志 当我运行pm2 start app.js时——观察应用程序崩溃并显示错误消息 0|app | Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader 0|app | at Loader.defau

我已在
package.json
中使用此键值对启用ES模块
“type”:“module”
我不必在最新版本的node中使用“实验”标志

当我运行
pm2 start app.js时——观察
应用程序崩溃并显示错误消息

0|app    | Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader
0|app    |     at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:781:11)
0|app    |     at Loader.resolve (internal/modules/esm/loader.js:85:40)
0|app    |     at Loader.getModuleJob (internal/modules/esm/loader.js:229:28)
0|app    |     at Loader.import (internal/modules/esm/loader.js:164:28)
0|app    |     at importModuleDynamically (internal/modules/cjs/loader.js:1194:27)
0|app    |     at exports.importModuleDynamicallyCallback (internal/process/esm_loader.js:30:14)
0|app    |     at Object.<anonymous> (C:\Users\username\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:29:24)
0|app    |     at Module._compile (internal/modules/cjs/loader.js:1251:30)
0|app    |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
0|app    |     at Module.load (internal/modules/cjs/loader.js:1100:32) {
0|app    |   code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
0|app    | }
0 | app | Error[ERR_UNSUPPORTED_ESM_URL_SCHEME]:默认ESM加载程序只支持文件和数据URL
0 | app | at Loader.defaultResolve[as | u resolve](internal/modules/esm/resolve.js:781:11)
0 | app | at Loader.resolve(internal/modules/esm/Loader.js:85:40)
0 | app | at Loader.getModuleJob(internal/modules/esm/Loader.js:229:28)
0 | app | at Loader.import(internal/modules/esm/Loader.js:164:28)
0 | app | at importmodule动态(internal/modules/cjs/loader.js:1194:27)
0 | app | at exports.importModuleDynamicCallback(internal/process/esm|u loader.js:30:14)
0 | app | at对象。(C:\Users\username\AppData\Roaming\npm\node\u modules\pm2\lib\ProcessContainerFork.js:29:24)
0 | app | at Module._编译(internal/modules/cjs/loader.js:1251:30)
0 | app | at Object.Module._extensions..js(internal/modules/cjs/loader.js:1272:10)
0 | app | at Module.load(内部/modules/cjs/loader.js:1100:32){
0 |应用程序|代码:“错误|不支持的| ESM | URL |方案”
0 | app |}
该应用程序在没有pm2的情况下运行良好。我猜pm2还不支持ESM


是否有任何解决方法或缺少某些配置?

尝试将harmony作为节点参数传递,因为它将在pm2过程中启用es6功能

pm2 start my_app.js --watch --node-args="--harmony"

如果您使用的是windows 10


pm2在windows 10上不与esm一起工作,没有解决办法

这可能与如何在另一个文件中导入js文件有关。您使用绝对路径吗?@chickensups导入nodejs核心模块(相对路径)和脚本的绝对路径不工作引用