Как создать локальный модуль в TypeScript - PullRequest
0 голосов
/ 11 декабря 2018

Я создал в папке src/modules/my-module/, которая имеет package.json и определил основной файл, который экспортирует все, что нам нужно.

Я могу импортировать из него сейчас import {A} from '../../modules/my-module'

Я хочуизменить синтаксис на import {A} from 'my-module', и у меня есть несколько причин для этого:

  • Когда я перемещаю модуль в другую папку, я не хочу менять весь код, вызывающий этот модуль.
  • Позже я хотел бы иметь возможность переместить модуль в отдельный репозиторий в виде пакета npm и повторно использовать его в нескольких проектах.Я не хочу менять весь вызывающий код позже.

Мне удалось скомпилировать его, добавив к tsconfig.json

"paths": {
  "my-module": ["src/modules/my-module"]
}

Но я не могу запустить результат черезnode.js как узел не может найти модуль.Есть ли способ использовать нереальную ссылку на модуль в таком сценарии.

1 Ответ

0 голосов
/ 11 декабря 2018

TS не конвертирует этот "мой-модуль" при переносе ваших файлов ts в js.

Использование пакета module-alias может решить вашу проблему.

Добавьте эту конфигурацию ниже в package.json:

"_moduleAliases": {
   "my-module": "<your_build_folder>/modules/my-module"
},

И этот код включенпервая строка вашего основного файла (server.ts / index.ts)

import 'module-alias/register';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...