зависимость пакета отличается от зависимости проекта - PullRequest
0 голосов
/ 10 сентября 2018

Я строю угловой пакет с angular6 и ng-packagr

Я создал проект с angular-cli, добавил библиотеку и приложение для локального тестирования. все работает хорошо, а потом я начал интеграцию моего пакета в реальный проект

Мой пакет использует @ ngrx / store. Подключается везде как обычно

constructor(private store: Store<any>) {}

Но когда я запускаю свой реальный проект, я вижу no providers for Store ошибок от компонентов пакета. Но магазин вводится. Похоже, мой пакет использует другой @ ngrx / store, чем мое базовое приложение. так что токены для инъекций отличаются и Store не может быть найден,

Я исправил это так

упаковка: constructor(@Inject(STORE_TOKEN) private store: Store<any>) {}

приложение: providers: [{provide: STORE_TOKEN, useExisting: Store}]

поэтому я использую промежуточный токен и создаю псевдоним для Store в DI-контейнере Но проблема в том, что мой пакет использует множество других зависимостей, и теперь мне нужно создать такой промежуточный токен для всех них.

Можно ли это исправить по-другому? Могу ли я как-то собрать свой пакет, и он будет использовать @ ngrx / Store (и другие пакеты) из зависимостей моего приложения?

...