微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在Node.js中使用ES模块时PM2崩溃

已使用此键值对pacakage.json"type": "module"中启用了ES模块,我不必在最新版本的节点上使用'experimental'标志

当我运行pm2 start app.js --watch时,应用程序崩溃并显示错误消息

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    | }

在没有pm2的情况下,该应用程序可以正常运行。我猜pm2还不支持ESM!

任何解决方法还是我缺少一些配置?

解决方法

如果您使用的是Windows 10

pm2在Windows 10上无法使用esm,没有解决方法!

,

尝试将和声作为节点参数传递,因为它将在pm2进程中启用es6功能。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。