Есть новый основной выпуск Angular, который, по утверждению разработчиков, меньше, быстрее и проще в использовании. Новые возможности Angular 5 под кодовым названием pentagon-donut включают автоматическое использование оптимизатора сборки.
В этой версии при создании производственной сборки с помощью интерфейса командной строки оптимизатор сборки будет применяться по умолчанию. Оптимизатор сборки — это инструмент, включенный в CLI, для уменьшения размера ваших пакетов путем применения семантического анализа вашего приложения Angular. Он работает, сначала отмечая стандартные части вашего приложения как чистые. Это улучшает встряхивание дерева, обеспечиваемое существующими инструментами, удаляя дополнительные части вашего приложения, которые не нужны. Второе, что делает оптимизатор сборки, — это удаляет декораторы Angular из кода времени выполнения вашего приложения. Декораторы используются компилятором, не нужны во время выполнения и могут быть удалены. Каждое из этих заданий уменьшает размер ваших пакетов JavaScript и увеличивает скорость загрузки вашего приложения для ваших пользователей.
Второе главное улучшение Angular 5 — это возможность более легко обмениваться состоянием приложения между серверной и клиентской версиями вашего приложения. Это достигается двумя вещами — Angular Universal State Transfer API и поддержкой DOM.
Angular Universal разработан, чтобы позволить вам выполнять рендеринг приложений Angular на стороне сервера, чтобы вы могли добавить поддержку парсеров и поисковых роботов, которые не поддерживают JavaScript, и повысить воспринимаемую производительность вашего приложения.
Этот новый выпуск добавляет ServerTransferStateModule вместе с соответствующим BrowserTransferStateModule, который позволяет вам генерировать информацию на стороне сервера как часть вашего рендеринга, а затем передавать ее на клиентскую сторону, чтобы избежать ее повторного создания. Разработчики говорят, что это полезно в таких ситуациях, когда вашему приложению необходимо получать данные через HTTP. Поскольку состояние передается с сервера, вам не нужно делать второй HTTP-запрос после того, как приложение дойдет до клиента.
Для улучшения общего состояния приложения также разработано добавление Domino, который представляет собой реализацию DOM на стороне сервера на основе dom.js Mozilla, на платформу-сервер. Это означает, что Angular поддерживает больше манипуляций с DOM в контекстах на стороне сервера, улучшая поддержку сторонних JS и библиотек компонентов, которые не поддерживают сервер.
Компилятор был улучшен для поддержки инкрементной компиляции для более быстрой перестройки, а в декораторы были добавлены функции. Компилятор теперь работает как преобразование TypeScript, представленное как часть TypeScript 2.3, что означает, что Angular может подключаться к стандартному конвейеру компиляции TypeScript. Разработчики говорят, что использование этого в инкрементальной сборке Angular экономит 95% времени сборки.