Проблема в том, что esm
пытается обработать все операторы import
при синтаксическом анализе файла перед загрузкой любого другого модуля.
При обработке import
операторов он использует встроенную в узел require
, а не модифицированную require
, созданную module-alias
Чтобы это исправить, вам нужно сначала загрузить module-alias
, а затем esm
. Таким образом, module-alias
получит возможность изменить функцию require
, прежде чем esm
сможет что-либо сделать.
Вы можете достичь этого, передав несколько параметров -r
на узел, но убедитесь, что module-alias
идет первым:
node -r module-alias/register -r esm index.js 8081
или с nodemon
:
nodemon -r module-alias/register -r esm ./src/index.js 8081
Вам также необходимо удалить import "module-alias/register"
из вашего кода, поскольку теперь он загружается из командной строки.