Как импортировать ссылки на компоненты материала из другой библиотеки рабочей области - PullRequest
1 голос
/ 23 апреля 2020

У меня есть рабочее пространство Angular, где у меня есть основной проект приложения, а также библиотека, содержащая модули материалов, при этом подходе я могу использовать модули материалов, экспортированные из material-lib.

import { MaterialLibModule } from 'material-lib';

проблема в том, что когда мне нужно использовать ссылку на некоторый компонент материала, скажем, MatBottomSheet и MatBottomSheetRef, я не могу импортировать это из material-lib. Должен ли я установить модули @ angular / material в основное приложение? Если бы я хотел сохранить материал полностью изолированным от основного проекта приложения, какой путь был бы к go?

1 Ответ

0 голосов
/ 23 апреля 2020

Короткий ответ заключается в том, что вам, вероятно, следует импортировать @angular/material в ваше основное приложение отдельно от вашего проекта lib.

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

Существует еще одна потенциальная проблема - опасно ссылаться на таблицу стилей материальной темы (из angular. json), не гарантируя ее наличия, установив ее в свое основное приложение, поэтому вы обнаружите, что устанавливаете в любом случае.

Суть в том, что он безопаснее и требует меньше обслуживания и кодирования, чтобы просто включить материал в родительское приложение, а не пытаться упаковать его в свою библиотеку.

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

...