Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Эта статья поможет вам уменьшить размер пакета/время сборки, поставляя только то, что необходимо.
Некоторые из концепций, которые мы рассмотрим, следующие:
Во-первых, мы создали приложение Angular v15, чтобы воспользоваться некоторыми новыми возможностями, но это не значит, что данный пример не применим к предыдущим версиям.
Мы создадим 2 компонента, которые также будут представлять 2 маршрута приложения. Мы назовем наши компоненты и маршруты First & Second.
Затем, мы перейдем к нашему AppComponent, чтобы разместить наши маршруты и, кстати, мы превратим его в отдельный компонент. Это означает, что нам нужно будет импортировать необходимые нам директивы, такие как RouterOutlet.
Поскольку AppComponent является автономным, наш main.ts будет немного отличаться от стандартного. Обратите внимание, что здесь мы загружаем наши маршруты с помощью метода provideRouter().
Наша начальная настройка для ленивой загрузки кажется готовой. Поэтому мы попробуем ее, запустив простую процедуру:
ng build
И вот что получается:
В результате сборки были получены все основные файлы плюс 2 лениво загружаемых куска, по одному для каждого маршрута.
Итак, давайте перейдем к нашему сценарию, который гласит, что у нас есть разные инсталляции, и одна из наших сред использует только первый маршрут.
Наш подход будет заключаться в предоставлении различных конфигураций сборки для каждого случая путем добавления некоторых дополнительных опций в наш angular.json.
Давайте начнем с добавления двух альтернативных файлов маршрутов. routes.first.ts и routes.second.ts в той же папке, что и routes.ts . В routes.first.ts будет содержаться только первый маршрут, а у второго будет свой собственный маршрут. Это означает, что все будет выглядеть следующим образом:
Теперь нам нужно как-то сообщить Angular, что мы хотим получить результат сборки, который будет содержать только этот маршрут.
Это произойдет внутри файла angular.json:
Мы ввели две новые конфигурации, первая & вторая, и каждая конфигурация использует опцию fileReplacements для того, чтобы менять местами файл маршрутов при каждом выборе конфигурации.
Теперь нам остается только запустить:
ng build --configurations:first
Вывод сборки содержит только выбранный маршрут/чанк, который в нашем случае является первым:
Добавив еще пару строк в наш angular.json, мы можем использовать эту конфигурацию при обслуживании:
Команда serve будет:
ng serve --configuration=first
Последнее, что мы можем сделать, это сгенерировать наше меню в соответствии с выбранной конфигурацией.
Быстрое решение для этого может быть следующим:
Мы импортируем все необходимые директивы отдельно, без необходимости использования всего модуля Common. Это также поможет нам уменьшить конечный размер пакета. Затем мы импортируем файл routes (который будет заменен на нужный) и сопоставляем с путем маршрута.
Наконец, мы выполняем итерации по маршрутам в нашем шаблоне:
Вы можете найти репо с вышеуказанным случаем здесь.
Будьте здоровы!
05.05.2023 14:00
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
05.05.2023 11:59
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.
05.05.2023 11:57
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.
05.05.2023 09:26
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут вам настроить, как будет выглядеть ваш сайт Temple, и вы можете настроить его дизайн в зависимости от ваших потребностей в дополнение к более чем 15+...