Обзор библиотек Angular¶
28.02.2022
Многие приложения должны решать одни и те же общие задачи, такие как представление единого пользовательского интерфейса, представление данных и возможность ввода данных. Разработчики могут создавать общие решения для конкретных областей, которые могут быть адаптированы для повторного использования в различных приложениях.
Такие решения могут быть построены в виде библиотек Angular, и эти библиотеки могут быть опубликованы и распространяться как npm-пакеты.
Библиотека Angular — это проект Angular, который отличается от приложения тем, что не может работать сам по себе. Библиотека должна быть импортирована и использована в приложении.
Библиотеки расширяют базовые возможности Angular. Например, чтобы добавить reactive forms в приложение, добавьте пакет библиотеки с помощью ng add @angular/forms
, затем импортируйте ReactiveFormsModule
из библиотеки @angular/forms
в код вашего приложения.
Аналогично, добавление библиотеки service worker в приложение Angular является одним из шагов для превращения приложения в Progressive Web App(PWA).
Angular Material — это пример большой библиотеки общего назначения, которая предоставляет сложные, многократно используемые и адаптируемые компоненты пользовательского интерфейса.
Любой разработчик приложений может использовать эти и другие библиотеки, опубликованные в виде пакетов npm командой Angular или сторонними разработчиками. Смотрите Использование опубликованных библиотек.
Создание библиотек¶
Если вы разработали функции, которые подходят для повторного использования, вы можете создать свои собственные библиотеки. Эти библиотеки могут использоваться локально в вашем рабочем пространстве, или вы можете опубликовать их как npm-пакеты, чтобы поделиться ими с другими проектами или другими разработчиками Angular.
Эти пакеты могут быть опубликованы в реестре npm, частном реестре npm Enterprise или частной системе управления пакетами, которая поддерживает пакеты npm.
См. раздел Создание библиотек.
Решение упаковать функции в виде библиотеки — это архитектурное решение. Оно сравнимо с решением о том, является ли функция компонентом или сервисом, или с решением о сфере применения компонента.
Упаковка функций в виде библиотеки позволяет отделить артефакты библиотеки от бизнес-логики приложения. Это поможет избежать различных плохих практик или архитектурных ошибок, которые могут затруднить развязку и повторное использование кода в будущем.
Размещение кода в отдельной библиотеке сложнее, чем просто размещение всего в одном приложении. Это требует больших затрат времени и мыслей на управление, поддержку и обновление библиотеки.
Эта сложность может окупиться, когда библиотека используется в нескольких приложениях.
Библиотеки предназначены для использования в приложениях Angular. Чтобы добавить возможности Angular в веб-приложения, не относящиеся к Angular, используйте Angular custom elements.