Псевдоним пути модуля узла с экспериментальными модулями - PullRequest
1 голос
/ 21 мая 2019

Я использую пакет 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?

1 Ответ

1 голос
/ 10 июня 2019

Я опубликовал это как проблему на github.Видимо module-alias пока не поддерживает модули ES.Тем не менее, я получил ответ с потенциальным решением проблемы.Я сам не пробовал, но на плакате написано, что это работает.

https://github.com/ilearnio/module-alias/issues/59#issuecomment-500480450

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...