Сбой PM2 при использовании модулей ES в nodejs

#node.js #pm2

#node.js #pm2

Вопрос:

Я включил модули ES в pacakage.json с этой парой ключ-значение "type": "module" , мне не нужно использовать флаг ‘experimental’ с последней версией node

при запуске 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:UsersusernameAppDataRoamingnpmnode_modulespm2libProcessContainerFork.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!

какие-либо обходные пути или я пропускаю некоторые конфигурации?

Комментарии:

1. Это может быть связано с тем, как вы импортируете файл js в другой файл. Используете ли вы абсолютный путь?

2. @ChickenSoups не работает как импорт модулей ядра nodejs (относительный путь), так и абсолютные пути к скриптам

Ответ №1:

Попробуйте передать harmony в качестве аргументов узла, поскольку это включит функции es6 в процессе pm2.

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

Ответ №2:

Если вы используете Windows 10

pm2 не работает с esm в Windows 10, обходных путей нет!

Комментарии:

1. ссылка github.com/Unitech/pm2/issues/4819