Schematics
Схема - это генератор кода на основе шаблонов, который поддерживает сложную логику. Это набор инструкций для преобразования программного проекта путем генерации или изменения кода. Схемы упакованы в коллекции и устанавливаются с помощью npm.
Коллекция схем может быть мощным инструментом для создания, изменения и поддержки любого программного проекта, но особенно полезна для настройки проектов Angular в соответствии с конкретными потребностями вашей организации. Вы можете использовать схемы, например, для генерации часто используемых шаблонов пользовательского интерфейса или определенных компонентов, используя предопределенные шаблоны или макеты. Вы можете использовать схемы для обеспечения соблюдения архитектурных правил и соглашений, делая ваши проекты согласованными и функциональными.
Схемы для угловых CLI
Схемы являются частью угловой экосистемы. В Angular CLI используются схемы для применения преобразований к проекту веб-приложения. Вы можете изменить эти схемы и определить новые для таких вещей, как обновление кода, например, для исправления критических изменений в зависимости, или для добавления нового параметра конфигурации или инфраструктуры в существующий проект.
Схемы, включенные в коллекцию `@ schematics / angular`, запускаются по умолчанию командами` ng generate` и `ng add`. Пакет содержит именованные схемы, которые конфигурируют параметры, доступные для CLI для подкоманд ng generate, таких как `ng generate component` и` ng generate service`. Подкоманды для ng generate являются сокращением для соответствующей схемы. Вы можете указать конкретную схему (или набор схем) для генерации, используя длинную форму:
ng generate my-schematic-collection:my-schematic-name
или же
ng generate my-schematic-name --collection collection-name
Конфигурирование схем CLI
Схема JSON, связанная со схемой, сообщает Angular CLI, какие параметры доступны для команд и подкоманд, и определяет значения по умолчанию. Эти значения по умолчанию можно переопределить, указав другое значение для параметра в командной строке.
Схемы JSON для схем по умолчанию, используемых CLI для генерации проектов и частей проектов, собраны в пакете @ schematics / angular. Схема описывает параметры, доступные для CLI для каждой из подкоманд генерации ng, как показано в выводе -help.
Разработка схем для библиотек
Как разработчик библиотеки, вы можете создавать свои собственные коллекции пользовательских схем для интеграции вашей библиотеки с Angular CLI.
- Схема добавления позволяет разработчикам устанавливать вашу библиотеку в рабочей среде Angular с помощью ng add.
- Схемы генерации могут указать подкомандам ng generate, как модифицировать проекты, добавлять конфигурации и сценарии, а также артефакты скаффолдов, которые определены в вашей библиотеке.
- Схема обновления может указать команде ng update, как обновить зависимости вашей библиотеки и откорректировать их, если вы выпускаете новую версию.
Добавить схемы
Схема добавления обычно поставляется с библиотекой, так что библиотека может быть добавлена в существующий проект с помощью `ng add`. Команда add использует менеджер пакетов для загрузки новых зависимостей и вызывает сценарий установки, который реализован в виде схемы.
Например, схема @ angular / material сообщает команде add об установке и настройке Angular Material и тематике, а также регистрирует новые стартовые компоненты, которые можно создавать с помощью команды ng generate. Вы можете посмотреть на это как на пример и модель для своей собственной схемы добавления.
Партнерские и сторонние библиотеки также поддерживают Angular CLI с добавлением схем. Например, @ ng-bootstrap / schematics добавляет в приложение ng-bootstrap, а @ clr / angular устанавливает и устанавливает Clarity из VMWare.
Добавление схемы также может обновить проект с изменениями конфигурации, добавить дополнительные зависимости (например, полифиллы) или код инициализации для конкретного пакета лесов. Например, схема @ angular / pwa превращает ваше приложение в PWA, добавляя манифест приложения и работника службы, а также @ angular / elements? схема добавляет полифилл document-register-element.js и зависимости для угловых элементов.
Схемы генерации
Схемы генерации являются инструкциями для команды ng generate. Документированные подкоманды используют схемы генерации углов по умолчанию, но вы можете указать другую схему (вместо подкоманды) для генерации артефакта, определенного в вашей библиотеке.
Например, Angular Material предоставляет схемы генерации для компонентов пользовательского интерфейса, которые он определяет. Следующая команда использует одну из этих схем для визуализации углового материала <mat-table>, который предварительно настроен с источником данных для сортировки и разбивки на страницы.
ng generate @angular/material:table
Обновить схему
Команда ng update может быть использована для обновления зависимостей библиотеки вашего рабочего пространства.
ng update
Если вы не предоставите никаких опций или используете опцию справки, команда проверит ваше рабочее пространство и предложит обновить библиотеки.
ng update @angular/cli
Если вы указали имя конкретной библиотеки для обновления, как показано выше, эта конкретная библиотека будет обновлена.
Команда ng update - all, обновляет все библиотеки в проекте, их одноранговые зависимости и зависимости от них.
Если есть несоответствия (например, если одноранговые зависимости не могут быть сопоставлены простым диапазоном серверов), команда генерирует ошибку и ничего не меняет в рабочей области.
Мы рекомендуем вам не устанавливать принудительное обновление всех зависимостей по умолчанию. Попробуйте сначала обновить определенные зависимости.
Если вы создаете новую версию своей библиотеки, которая вводит потенциальные критические изменения, вы можете предоставить схему обновления, чтобы позволить команде ng update автоматически разрешать любые такие изменения в обновляемом проекте. Например, предположим, что вы хотите обновить библиотеку угловых материалов.
ng update @angular/material
Эта команда обновляет @ angular / material и его зависимость @ angular / cdk в package.json вашего рабочего пространства. Если какой-либо из пакетов содержит схему обновления, охватывающую переход с существующей версии на новую версию, команда запускает эту схему в вашей рабочей области.
Предыдущая: Авторская Схема
Далее: Создание библиотек
Новый контент: Composer: менеджер зависимостей для PHP , R программирования