Что ожидать от Angular 5

19 апреля 2017г.  angular     frontend     angular5     планы   


График релизов Angular

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


AOT по-умолчанию

Хочу отдельно отметить, что большая часть изменений в этой статье, так или иначе являются следствием перехода на AOT.

В текущей версии фреймворка есть два типа компиляции проекта: быстрый JIT (Just In Time) и медленный AOT (Ahead of Time). JIT, благодаря своей простоте и скорости рекомендуется использовать во время разработки на dev-среде. При AOT-компиляции используются различные оптимизации, за счет чего процесс сборки происходит заметно медленнее. Скорость сборки затрудняет использовать  AOT при разработке, однако его рекомендуется использовать для production-build-ов. Полный перечень преимуществ AOT перечислен тут.

Исходя из этого списка преимуществ, а также чтобы устранить различия в сборках, разработчики Angular планируют сделать AOT-компиляцию по-умолчанию (не уверен насчет намерений выпилить JIT совсем, скорее всего он останется, но включать его придется ручками).

Режим отслеживания изменений (watch) для ngc*

*ngc - Agular Compiler CLI (@angular/compiler-cli)

Следствием перехода на AOT станет инкрементальная сборка изменений. И, чтобы не запускать каждый раз ручками ngc, в нем добавится режим watch, для отслеживания изменений в файлах проекта и внедрения этих изменений в сборку. Разумеется, данное изменение будет внедрено также и в AngularCLI.

Шаблоны больше не будут компилироваться в *.ngfactory.ts файлы

В настоящий момент код шаблонов собирается TypeScript файлы с расширением *.ngfactory.ts. С использованием AOT, код шаблонов будет собираться в общий bundle сборки, что в свою очередь упростит отладку кода шаблонов.

Проверка типов в шаблонах

Как следствие предыдущего пункта, будет улучшена проверка типов используемых переменных в шаблонах, а также будет переработан вывод об ошибках в отладчик. Планируется сделать отладку шаблонов более простой и наглядной.

Сообщения об ошибках

Вывод отладочной информации планируется исправить не только в шаблонах, но и во всей библиотеке в целом. Если вы уже успели достаточно поработать с четвертой версией, то уже могли оценить прогресс относительно второй. Но нет предела совершенству, и в пятой планируется провести еще ряд улучшений. К сожалению, пока не ясно что именно планируется изменить.

Плавное обновление

Те, кто уже успел перескочить со второй версии на четвертую, не могли не заметить насколько просто это было сделать. В пятой версии хотят продолжить эту новую приятную традицию и сделать все, чтобы для перехода на с Angular 4 на 5 произошел как можно более незаметно. Возможно, будет реализована система автоматического uprade-а, например, встроенная в AngularCLI.

Tree-Shakeable компоненты

При сборке проекта, компилятор строит дерево зависимостей с самого первого входного узла, разветвляясь до самого низа. При этом, некоторые из этих ветвей никогда не используются в текущем проекте (вы можете сами оценить процент неиспользуемого кода, например, в новом DevTools). Tree Shaker (дословно "тот кто трясет дерево") отбрасывает потенциально никогда не используемые в вашем проекте компоненты и зависимости, тем самым уменьшая размер конечного bundle-а и увеличивая производительность всего проекта в целом.

Это изменение тоже (сюрприз-сюрприз!) является следствием введения сборки с помощью AOT.

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

  • Ленивая загрузка Angular
  • Bolierplate для Less
  • Улучшения в AngularCLI
  • Увеличение производительности
  • Улучшения работы router-а
  • Больше документации и примеров


По мотивам статьи: What to Expect for in Angular v5?