Я использую пакет module-alias , чтобы включить псевдонимы пути в проекте узла.Например, давайте вам:
const accountRepo = require('@app/account/account-repo')
Я бы хотел перевести проект на использование экспериментальных модулей (включается с флагом --experimental-modules
).Модули ES будут включены без флага, когда узел 12 перейдет в LTS;думал, что я начну экспериментировать до этого.В любом случае, псевдоним модуля не работает с модулями ES.Я попытался добавить это в корень моего приложения (этот метод я использовал до перехода на esm):
require('module-alias/register')
Я пытался изменить его на:
import 'module-alias/register'
Я пыталсятребуется при запуске сервера:
node --experimental-modules -r module-alias/register server/app.js
Ни один из этих методов не работает.Я предполагаю, что псевдоним модуля переопределяет функцию require
, чтобы разрешить псевдонимы пути, и это, конечно, не работает с esm.
Я знаю, что могу сделать это с Бабелем, но яЯ использую --experimental-modules
, чтобы избежать этого.
Я также попытался использовать символическую ссылку в папке node_modules
, но, похоже, она не работает при запуске приложения внутри контейнера Docker.Кроме того, мне это кажется хаком / хрупким.
Кто-нибудь знает, как включить псевдонимы пути в узле с собственными модулями ES?