Я работаю над пакетом NPM, написанным на Typescript, и у меня возникают проблемы с компоновкой разрешения модуля при компиляции библиотеки для публикации.
На протяжении всего проекта я использовал не относительный импорт, чтобы избежать раздражения ../../../
. Однако я прочитал в документации по машинописи, что относительный импорт должен использоваться внутри проекта.
Относительный импорт разрешен относительно импортируемого файла и не может быть преобразован в объявление окружающего модуля. Вы должны использовать относительный импорт для своих собственных модулей, которые гарантированно сохраняют свое относительное местоположение во время выполнения.
Не относительный импорт может быть разрешен относительно baseUrl или путем сопоставления путей, о котором мы расскажем ниже. Они также могут разрешать объявления окружающих модулей. Используйте не относительные пути при импорте любых ваших внешних зависимостей.
Мне бы не хотелось жертвовать красивым, аккуратным импортом в пользу относительного импорта, но я не уверен, как настроить параметры компилятора, чтобы заставить это работать. При запуске тестов я указываю NODE_PATH
для разрешения модулей, но это не работает для посткомпиляции.
Я хотел бы иметь возможность записывать файлы, используя не относительный импорт, но каким-то образом преобразовать их, чтобы файлы dist/
могли разрешить импорт.
Проект размещен на github здесь .
Соответствующая проблема заключается в том, что в моей папке dist/
появляется файл index.d.ts
, который выглядит так:
import { Emitter } from 'emitter';
import { Schema } from 'migrations';
import { Model, model, relation } from 'model';
import { Builder } from 'query';
export { Builder, Emitter, Model, model, relation, Schema };
Но все модули имеют ошибки, которые не могут быть устранены. Как я могу сохранить эти импорта в их текущей форме, но преобразовать их каким-либо образом при сборке, чтобы при публикации пакета npm модули могли быть правильно разрешены.