baseUrl и пути в машинописи - как

65
8

Я начал приложение в машинописном тексте. Я узнал о некоторых особенностях TS, и это выглядело как что-то, что могло бы помочь мне, но я не работаю так, как я ожидал. Документация TS говорит что-то о картировании пути в главе " Разрешение модуля". Это отображение модуля может, если я правильно его понимаю, сэкономить несколько или даже много двойных точек при import. Поэтому я создал каталог "inc" с одним файлом (в это время), который будет включен в несколько файлов в нескольких каталогах. В tsconfig я написал следующее:

"baseUrl": ".",
"paths": {
"@inc/*": [ "inc/*" ]
}

Теперь я ожидаю, что использование import { X } from "@inc/somefile" (даже из файла, расположенного где-то глубоко в дереве папок) приведет к импорту этого export X из. /inc/somefile.ts (или.js, при запуске).

Hovewer, компилятор/транспилятор оставит оператор import неповрежденным, поэтому, когда я пытаюсь запустить этот код с помощью node.js, он умрет, потому что нет @inc/somefile - узел не читает tsconfig, а tsc не создает любые функции отображения.

Я могу, конечно, прочитать и разобрать элемент path вручную в какой-то оболочке требуемой оболочки, но я верю, что я что-то делаю неправильно и/или лучший способ добиться этого.

Спасибо за ваши ответы.

спросил(а) 2018-07-11T17:43:00+03:00 1 год, 4 месяца назад
1
Решение
54

Помните, что

если вы затем попытаетесь выполнить компиляцию файлов с помощью узла (или ts-node), он будет смотреть только в папках node_modules вплоть до корня файловой системы и, следовательно, не найдет модули, указанные путями в tsconfig. - введен в tsconfig-paths readme.

В заключение прямо необходимо, чтобы tsconfig-paths в списке зависимостей и загрузка файла tsconfig при запуске могли быть быстрым решением.

ответил(а) 2018-09-14T13:36:00+03:00 1 год, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема