Создание библиотеки¶
Начиная с версии Angular 6 стала доступна функция генерации Angular-библиотек с использованием @angular/cli
. Сгенерировать библиотеку можно только в уже созданном проекте следующей командой:
1 |
|
Здесь ngx-custom-lib
— название вашей библиотеки.
Все сгенерированные библиотеки помещаются в директорию projects
, а метаданные о библиотеке добавляются в angular.json
в секцию projects
.
Для создания в библиотеке с помощью @angular/cli
, например, компонента, необходимо явно указать название проекта с помощью флага --project
.
1 |
|
Модули и относящиеся к ним компоненты, директивы, фильтры и сервисы определяются в папке lib
и могут повторять структуру обычного приложения. Все сущности, предоставляемые модулем использующему его приложению, должны экспортироваться из public_api.ts
.
public_api.ts
1 2 3 |
|
Сборка библиотек аналогична сборке обычного Angular приложения.
1 |
|
После этого ее можно использовать в приложении.
1 2 3 |
|
В библиотеку включаются только те стили, которые напрямую прописаны в свойстве компонентов styleUrls
.
Для того чтобы включить в сборку библиотеки глобальные стили, которые могут быть импортированы приложением напрямую, необходимо использовать сборщик файлов стилей.
Разберемся на примере scss. В качестве сборщика будем использовать scss-bundle
, который нужно установить в системе глобально:
1 |
|
Создадим в исходных файлах библиотеки директорию assets/styles
, а внутри нее файлы стилей — entry.css
, style1.scss
и style2.scss
. Причем последние два импортируются в первый.
Теперь выполним сборку стилей.
1 |
|
В параметре -e
указывается список файлов, которые должны быть объединены в файле, указанном в параметре -d
. Результирующий файл создастся по указанному пути.
Затем в приложении можно импортировать стили, например, в глобальный файл style.scss
:
1 |
|
Если исходных файлов стилей в библиотеке много, то scss-bundle позволяет в качестве источника указывать файл конфигурации, в котором перечисляются все необходимые стили.