Я работаю над пакетом 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 модули могли быть правильно разрешены.
commonjs
вы можете указать только выходной каталог, но не выходной файл. - person Wolfie   schedule 25.06.2018