Фото Эстебана Лопеса на Unsplash.

Angular только что выпустил 11-ю версию своего замечательного фреймворка, так что давайте рассмотрим новейшие функции Angular.

Обновленная поддержка горячей замены модуля (HMR)

Средство тестирования компонентов позволяет тестам взаимодействовать с компонентами с помощью поддерживаемых API. Впервые это было введено в Angular 9. Эти API-интерфейсы имеют возможность взаимодействовать с компонентами так же, как и конечные пользователи, и тесты могут изолировать себя от изменений в DOM.

В то время этот механизм поддерживал только материал Angular. Но в последней версии для всех компонентов доступна привязка компонентов.

В следующем примере показано использование MatButtonHarness в материале Angular:

Поддержка TypeScript 4.0

Горячая замена модулей - это механизм, который позволяет заменять модули без полного обновления браузера. HMR не является чем-то новым для Angular, и разработчики также могли использовать его с предыдущими версиями. Но с Angular 11 количество усилий, необходимых для настройки HMR, значительно сократилось, и для этого они предоставили команду CLI.

Теперь вы можете просто использовать команду ng serve с тегом hmr, чтобы включить HMR:

В этом последнем обновлении команда Angular отказалась от поддержки TypeScript 3.9. Теперь Angular 11 поддерживает только TypeScript 4.0.

ng serve --hmr

Поддержка Webpack 5

Одна из основных причин этого обновления - ускорение сборки. Angular 11 обеспечивает гораздо более быструю сборку, чем предыдущие версии.

Как вы знаете, webpack используется для компиляции большого количества файлов в один пакет или один файл. Webpack 5 - последняя версия, выпущенная за последний месяц. Он все еще не полностью стабилен.

Переход на ESLint

Однако Angular 11 обеспечивает экспериментальную поддержку webpack 5, и вы можете использовать его с Angular 11, чтобы опробовать новые возможности. Согласно примечаниям к выпуску, команда Angular считает, что они могут расширить эту экспериментальную поддержку для достижения более быстрых сборок и небольших пакетов, когда все станет стабильным.

Если вы хотите попробовать webpack 5, вы можете начать с добавления следующих строк в ваш package.json файл:

TSLint долгое время был одним из самых популярных инструментов линтинга среди разработчиков. Но недавно он был объявлен устаревшим, и обязанности были переданы ESLint.

“resolutions”: {
 “webpack”: “5.4.0”
}

1. Добавьте соответствующие зависимости.

Angular также переходит с TSLint на ESLint с обновлением версии 11, и вы больше не сможете использовать TSLint для линтинга в Angular. Angular представил трехэтапный метод перехода с TSLint на ESLint.

Удалите корневой уровень tslint.json.

2. Запустите схему convert-tslint-to-eslint в проекте.

ng add @angular-eslint/schematics

3. Удалите корневую конфигурацию TSLint и используйте только ESLint.

ng g @angular-eslint/schematics:convert-tslint-to-eslint {{YOUR_PROJECT_NAME_GOES_HERE}}

Обновленная предварительная версия языковой службы

Вы можете найти более подробную информацию о миграции здесь:

«Angular Language Service предоставляет редакторам кода возможность получать дополнения, ошибки, подсказки и навигацию внутри шаблонов Angular. Он работает с внешними шаблонами в отдельных файлах HTML, а также со встроенными шаблонами ». - «Документация по Angular»

Прочие изменения

Ранее эта языковая служба была основана на View Engine. Angular 11 предоставляет новую, более мощную и точную языковую службу на основе Ivy.

Хотя эта функция все еще находится в разработке, она может вести себя аналогично компилятору TypeScript.

Кроме того, в Angular 11 внесено большое количество мелких изменений, например:

Некоторые критические изменения

Думаю, теперь вы понимаете некоторые важные особенности Angular 11. Но это лишь часть функций, предоставляемых Angular 11, и вы также можете найти более подробную информацию в их блоге.

  • Улучшения сервис-воркеров.
  • Поддержка отложенной загрузки для названных розеток.
  • Angular CLI теперь может генерировать защиту разрешения.
  • Более строгие типы встроены в трубы.
  • Функция formatDate теперь поддерживает формат года нумерации недель ISO 8601.
  • Angular 11 полностью удаляет мобильную поддержку IE 9, 10 и IE.

Вывод

  • TypeScript 3.9 больше не поддерживается.
  • preserveQueryParams был удален из маршрутизатора, и вместо него можно использовать queryParamsHandling=”preserve”.
  • Выражения внутри ICU теперь снова проверяются на тип.
  • Асинхронный конвейер больше не утверждает, что возвращает undefined для ввода, который был набран как undefined.
  • «Https://www.ausy.fr/alex/ligue-1/Pv-M000.html»
    «https://www.ausy.fr/alex/ligue-1/Pv-M001.html»
    «https://www.ausy.fr/alex/ligue-1/Pv-M002.html»
    «https://www.ausy.fr/alex/ligue-1/Pv- M003.html »
    « https://www.ausy.fr/alex/ligue-1/Pv-M004.html »
    « https://www.ausy.fr/alex/ligue- 1 / Bv-R000.html »
    « https://www.ausy.fr/alex/ligue-1/Bv-R001.html »
    « https://www.ausy.fr/ alex / ligue-1 / Bv-R002.html »
    « https://www.ausy.fr/alex/ligue-1/Bv-R003.html »
    « https: // www. ausy.fr/alex/ligue-1/Bv-R004.html »
    « https://carepropertyinvest.be/invest/ligue-1/Bv-R000.html »
    « https: // carepropertyinvest.be/invest/ligue-1/Bv-R001.html »
    « https://carepropertyinvest.be/invest/ligue-1/Bv-R002.html »
    « https: // carepropertyinvest.be/invest/ligue-1/Bv-R003.html »
    « https://carepropertyinvest.be/invest/ligue-1/Bv-R004.html »
    « https: // carepropertyinvest.be/invest/ligue-1/Pv-M000.html »
    « https://carepropertyinvest.be/invest/ligue-1/P- v-M001.html »
    « https://carepropertyinvest.be/invest/ligue-1/Pv-M002.html »
    « https://carepropertyinvest.be/invest/ligue-1/ Pv-M003.html »
    « https://carepropertyinvest.be/invest/ligue-1/Pv-M004.html »
    « https://www.ausy.fr/alex/ligue- 1 / Re-Bo-en-dir-tv-s01.html »
    « https://www.ausy.fr/alex/ligue-1/Re-Bo-en-dir-tv-s02.html »
    « https://www.ausy.fr/alex/ligue-1/Re-Bo-en-dir-tv-s03.html »
    « https://www.ausy.fr /alex/ligue-1/Re-Bo-en-dir-tv-s04.html »
    « https://www.ausy.fr/alex/ligue-1/Re-Bo-en-dir- tv-s05.html »
    « https://www.ausy.fr/alex/ligue-1/Re-Bo-en-dir-tv-s06.html »
    « https: // www.ausy.fr/alex/ligue-1/Re-Bo-en-dir-tv-s07.html »
    « https://www.ausy.fr/alex/ligue-1/Re-Bo -en-dir-tv-s08.html »
    « https://carepropertyinvest.be/invest/ligue-1/Re-Bo-en-dir-tv-s01.html »
    « https : //carepropertyinvest.be/invest/ligue-1/Re-Bo-en-dir-tv-s02.html »
    « https://carepropertyinvest.be/invest/ligue-1/Re-Bo- en-dir-tv-s03.html »
    « https: // careprope rtyinvest.be/invest/ligue-1/Re-Bo-en-dir-tv-s04.html »
    « https://carepropertyinvest.be/invest/ligue-1/Re-Bo-en-dir -tv-s05.html »
    « https://carepropertyinvest.be/invest/ligue-1/Re-Bo-en-dir-tv-s06.html »
    « https: // carepropertyinvest .be / invest / ligue-1 / Re-Bo-en-dir-tv-s07.html »
    « https://carepropertyinvest.be/invest/ligue-1/Re-Bo-en-dir- tv-s08.html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q00.html »
    « https://www.ausy. fr / alex / ligue-1 / Ren-Bor-www-Q01.html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q02.html »< br /> «https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q03.html»
    «https://www.ausy.fr/alex/ligue-1 /Ren-Bor-www-Q04.html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q05.html »
    « https: / /www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q06.html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www- Q07.html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q08.html »
    « https://www.ausy.fr/ alex / ligue-1 / Ren-Bor-www-Q09. html »
    « https://www.ausy.fr/alex/ligue-1/Ren-Bor-www-Q10.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q00.html »
    « https://carepropertyinvest.be/invest/Ren-Bor-www-Q01.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q02.html »
    « https://carepropertyinvest.be/invest/Ren-Bor-www-Q03.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q04.html »
    « https://carepropertyinvest.be/invest/Ren-Bor-www-Q05.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q06.html »
    « https://carepropertyinvest.be/invest/Ren-Bor-www-Q07.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q08.html »
    « https://carepropertyinvest.be/invest/Ren-Bor-www-Q09.html »
    « https://carepropertyinvest.be/invest/Ren- Bor-www-Q10.html »

«Руководство по миграции»

А пока, если вы хотите обновить свои проекты до Angular 11, вам просто нужно выполнить следующую команду:

Спасибо за чтение!

ng update @angular/cli @angular/core

Что нового в Angular 11?