Как я могу поделиться компонентом Angular 2 между несколькими проектами Angular 2?

В идеале я хотел бы создать автономный компонент Angular 2 (с тестами), а затем повторно использовать его между двумя или тремя разными Angular 2 сайтами. Каковы хорошие способы достижения этого? И вопрос о бонусе - существует ли какая-либо сторонняя сторона Angular 2 компонента?

Ответы

Ответ 1

Вы можете создать библиотеку компонентов angular2 (с тестами), а затем использовать ее в любом количестве проектов

Вот как создать библиотеку angular2 https://makina-corpus.com/blog/metier/2017/how-to-create-an-angular-library

с angular-cli https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e

Затем вы можете опубликовать его для общего пользования. Если вы хотите сохранить это в тайне, вы можете прочитать это https://www.npmjs.com/onsite

Да, существует много сторонних angular2 компонентов. Вот несколько из доблестного программного обеспечения https://github.com/valor-software/ng2-plans


Йоменский генератор для angular библиотеки https://github.com/jvandemo/generator-angular2-library

Ответ 2

это немного поздно, но я бы хотел предложить другое решение, недавно выпущенное для публичной бета-версии Angular. Вы можете обернуть каждый компонент внутри модуля ngModule (как это делается в большинстве библиотек компонентов ng), а затем использовать бит, чтобы разделить компонент между двумя различными проектами или приложениями. Преимущества в том, что вы можете публиковать, устанавливать и обновлять отдельные компоненты. bit будет обрабатывать упаковку компонента со всеми его зависимостями, файлами и т.д., поэтому вы можете установить его в другом проекте, используя npm/yarn. Кроме того, вы можете использовать бит для импорта кода компонента во 2-й репозиторий, вносить изменения и синхронизировать их между репозиториями. Вы можете взглянуть на Angular с руководством по битам и руководящие принципы (написанные командами по битам и по угловым направлениям). Вот также несколько примеров. Надеюсь это поможет. Я в команде, поэтому, пожалуйста, не стесняйтесь спрашивать что-нибудь, и я хотел бы помочь, если смогу.

Ответ 3

Я знаю, что это может быть слишком поздно, но это может помочь вам.
Я начал использовать Angular, и у меня возник тот же вопрос, поэтому я попробовал bit.dev, и это было очень круто.
Наконец, я создал свою первую библиотеку и поделился всеми компонентами с коллекцией bit.dev.
Проверять, выписываться https://bit.dev/joshk/ng-spinners