Как зарегистрировать `tsconfig-paths` для`tsc-watch`?

Я пытаюсь настроить относительные пути для моего приложения, на котором он запущен tsc-watch, Но когда я пытаюсь получить доступ к enum в общей папке из папки функций, я получаю сообщение "Ошибка: не удается найти модуль". Запуск приложения с ts-node работает отлично. Как я могу использовать tsconfig-paths с участием tsc-watch?

Вот репо моего проекта: https://github.com/Nako68l/nestjs-task-management

0 ответов

TL;DR У вас естьIS_TS_NODE env var во время работы tsc-watch.

Как я могу использовать tsconfig-paths с tsc-watch?

tsc-watchне знают и не несут ответственности за отображение путей. Отображение можно реализовать с помощью таких пакетов:

  1. модуль-псевдоним для среды выполнения Node.js. Он изменяет значение по умолчаниюrequire поведение.
  2. @ef-carbon / tspm для изменения файлов js после компиляции машинописного текста.
  3. tsconfig-paths для времени выполнения Node.js/TS-узла. Он также изменяет значение по умолчаниюrequireповедение. tsconfig.json используется для конфигурации. Для времени выполнения Node.js вы должны включить копию tsconfig.json в скомпилированную папку.

В вашем репозитории есть смесь 1 и 3 решений:

  • module-alias используется, если env var IS_TS_NODEне определено (src / main.ts)
  • tsconfig-paths используется с ts-node, потому что у вас есть -r tsconfig-paths/register

У тебя есть IS_TS_NODE env var во время работы tsc-watch, так module-alias не работает.

Используйте одно решение, чтобы избежать такой ситуации.

Я создатель tsc-watch Я только что проверил ваш проект, похоже, он работает... Удалось ли вам найти решение?

Другие вопросы по тегам