🤓 Краткий обзор
Angular CLI - ценный инструмент, который каждый разработчик Angular использует для простой инициализации, разработки, формирования и обслуживания своих приложений.
Однако одной из важных вещей, которой до сих пор не хватало, является возможность расширить существующую конфигурацию webpack и добавить свои собственные загрузчики или плагины.
Конечно, были некоторые хаки, такие как использование ng-eject
или экспериментального Architect API, но это было рискованно и сложно.
К счастью, с выпуском Angular 8 экспериментальный API-интерфейс Architect был хорошо определен и стабилизирован, и хорошие люди в сообществе Angular создали специальную библиотеку компоновщика веб-пакетов. Эта библиотека дает нам возможность легко подключиться к конфигурации веб-пакета.
Мы не собираемся углубляться и объяснять, как это работает под капотом. Вместо этого я перенаправлю вас на отличную статью, написанную Евгением Барабановым, где он все подробно объясняет.
🦄 Настройте конфигурацию своего веб-пакета
В нашем примере мы собираемся расширить конфигурацию веб-пакета по умолчанию двумя вещами:
- Мы добавим плагин под названием webpack-notifier, который использует пакет node-notifier для отображения системных уведомлений о состоянии сборки для пользователя.
- То, чем я давно хотел заняться; Добавьте загрузчик postcss.
Приступим 😎
Во-первых, нам нужно создать новое приложение Angular 8:
npx @angular/cli new appName
Далее нам нужно установить библиотеку angular-builders
:
npm i -D @angular-builders/custom-webpack
Теперь нам нужно изменить параметр builder
в полях architect.build
и architect.serve
на следующее:
С этим изменением, когда мы запускаем ng serve
или ng build
команды, Angular будет использовать наш собственный конструктор. Построитель запустит ту же сборку, что и стандартная, с дополнительными параметрами, которые указаны в предоставленной конфигурации файла webpack.
Посмотрим на файл webpack.config
:
Мы можем предоставить частичный объект конфигурации веб-пакета с дополнительными вещами, которые нам нужны. В нашем случае мы используем API w ebpack для добавления загрузчика postcss, чтобы мы могли применить плагин postcss-short и плагин WebpackNotifierPlugin
, как мы упоминали ранее.
Разработчик позаботится об объединении дельты с существующей конфигурацией, предоставляемой Angular.
Теперь мы можем использовать API плагина postcss-short, например, добавим сокращенное свойство size
:
div { size: 300px; }
Давайте запустим приложение с помощью команды npm start
и просмотрим результат:
Мы видим уведомителя и перенесенный CSS. Вот так просто.
Библиотека также предоставляет такие параметры, как настраиваемые стратегии слияния, настраиваемая функция конфигурации веб-пакета и многое другое. Рекомендую заглянуть в документацию.
Удачного взлома! 💻
🚀 Вы уже пробовали акиту?
Одна из ведущих библиотек государственного управления, Akita использовалась в бесчисленных производственных средах. Он постоянно развивается и совершенствуется.
Будь то объекты, поступающие с сервера, или данные о состоянии пользовательского интерфейса, у Akita есть специализированные хранилища, мощные инструменты и индивидуальные плагины, которые помогают управлять данными и устраняют необходимость в огромных объемах шаблонного кода. Мы / я очень рекомендую вам попробовать.
Подпишитесь на меня в Medium или Twitter, чтобы узнать больше об Angular, Akita и JS!