Novedades de Angular 9.1

Ha llegado Angular 9.1, con mejoras de rendimiento y simultaneidad en el compilador de compatibilidad ngcc. La compilación y el procesamiento de Ivy también recibieron atención, lo que resultó en un mejor rendimiento.

Angular 9.1, publicada el 25 de marzo, sigue a la versión Angular 9.0, que estuvo disponible como versión de producción el 6 de febrero de 2020. La actualización de la versión 9.0 al popular marco basado en TypeScript cambia las aplicaciones al compilador Ivy y al tiempo de ejecución de forma predeterminada.

Ivy ofrece una compilación AOT más rápida, así como tamaños de paquete más pequeños, pruebas más rápidas y una mejor depuración. Ivy también incluye enlaces de estilo y clases CSS mejorados, junto con mejoras en la verificación de tipos, errores de compilación y tiempos de compilación. También forma parte de Angular 9  ng update, que promete ser una herramienta más confiable e informativa para actualizar aplicaciones y sus dependencias. 

Angular proporciona inyección de dependencia, que es particularmente útil para ensamblar servicios de datos para aplicaciones, junto con el uso de una plantilla HTML para componer componentes. En Angular, los desarrolladores aún componen componentes con un componente HTML que se conecta al código TypeScript para partes imperativas del programa.

Dónde descargar Angular 9.1 o versiones anteriores

Puede descargar la versión de producción de Angular de GitHub, así como las versiones beta. Se ha publicado una guía de actualización de Angular, junto con una guía para actualizar a Angular 9.

Nuevas funciones en Angular 9.1

  • Optimizaciones de rendimiento para ngcc, así como mejoras de concurrencia y confiabilidad para casos de uso de ngcc monorepo. Ya no se recomienda el script postinstall de NPM. Con ngcc, el procesamiento asíncrono se detiene si otro proceso tiene el archivo de bloqueo. También con ngcc, una capacidad de acoplado de mapas de origen puede cargar un árbol de archivos de origen conectados por mapas de origen y acoplarlos en un único mapa de origen. Este mapa fuente se asigna directamente desde el archivo final generado a las fuentes originales a las que hacen referencia los mapas fuente intermedios.
  • Se admite TypeScript 3.8.
  • La internacionalización, a través de i18n, ahora admite información regional RTL.
  • El rendimiento de Ivy se ha mejorado al eliminar el argumento de evento no utilizado en las instrucciones de escucha. Anteriormente, Ivy generaba un $eventargumento, incluso si las expresiones del oyente no lo usaban. Esto podría dar lugar a una generación de bytes innecesaria. Además, se ha incluido una corrección de compatibilidad para la comprobación de plantillas de Ivy.

Nuevas funciones en Angular 9.0

Además de hacer que Ivy sea el predeterminado, Angular 9.0 incluye las siguientes nuevas características y mejoras:

  • Las nuevas opciones para providedIncrear un @Injectableservicio incluyen platform, que hace que un servicio esté disponible en un inyector de plataforma singleton especial compartido por todas las aplicaciones en una página, y any, que proporciona una instancia única en cada módulo que inyecta el token.
  • Arneses de componentes, para garantizar que las pruebas unitarias tengan el alcance correcto y sean menos frágiles. Los detalles de implementación se abstraen.
  • Nuevos componentes que permiten la inclusión de las capacidades de YouTube y Google Maps en las aplicaciones.
  • Se admiten TypeScript 3.7 y TypeScript 3.6.
  • Se ha mejorado el rendimiento para eventListeners.
  • El código de moneda predeterminado en CurrencyPipeahora es configurable.
  • Para mejorar el rendimiento del renderizador Ivy, los accesos de estado global repetidos se eliminan de las instrucciones de i18n cuando la información ya está disponible. Ivy también obtiene un aumento de rendimiento al eliminar SafeDetectioncódigo adicional . Y el paquete @ angular / localize se puede agregar a un proyecto CLI de Angular a través de ng add.
  • También para el renderizador Ivy, se ofrecen mejores mensajes de error para componentes desconocidos. Además, se ha agregado una nueva bandera localize-translateque permite especificar la configuración regional de origen.
  • Para mejorar el rendimiento en el núcleo, la desinfección se vuelve trepidante en el renderizador Ivy. 
  • También en Ivy, la verificación de tipos de plantillas se ha cambiado para producir diagnósticos ct. Esto soluciona un problema de diseño en el que el compilador Angular ha producido tanto diagnósticos nativos de TypeScript como su propio formato de diagnóstico interno, que no ha sido óptimo.
  • También para el núcleo, Angular agrega un nuevo esquema de migración, según el plan de migración dado.
  • Se NgFormSelectorWarningha eliminado el selector.
  • Para ngcc (compilador de compatibilidad angular), se ha agregado una migración para las clases secundarias no decoradas.
  • Se han realizado varias correcciones de errores para Ivy, el compilador, core, language-service, ngcc y Bazel.

Nuevas funciones en Angular 8.2

Lanzada en agosto de 2019, la versión 8.2 de Angular incluye:

  • Para mejorar el rendimiento del compilador, se evita la copia del prototipo mientras se clona un objeto. Esto actualiza la función de clonación de la clase ApplySourceSpanTransformer, donde se utilizó el bucle for-in, lo que resultó en la copia del prototipo a las propiedades propias, consumiendo más memoria.
  • Compatibilidad con TypeScript 3.5.
  • Compilación de objetivos utilizados por las herramientas de Kythe con el renderizador Ivy. Esto elimina problemas con las referencias cruzadas a las dependencias transitivas que no se generan, debido a cómo el compilador heredado carga dichas dependencias.
  • Soporte para funciones y $elementcomponentes actualizados .templatetemplateURL
  • Para Bazel, los usuarios ahora pueden pasar un Bazel CompilerHost personalizado para una compilación Angular, que admite la anulación del host del compilador TypeScript.
  • Varias correcciones de errores, incluido el aumento del límite de memoria de ngcBazel de 2GB a 4GB.

Nuevas funciones en Angular 8.1

  • Se proporcionan ayudantes de prueba para la biblioteca de actualización / estática que conectan los inyectores Angular y AngularJS sin necesidad de un arranque completo de una aplicación híbrida.
  • Desaprovechamiento de la integración con Web Tracing Framework, que Angular había admitido anteriormente para las pruebas de rendimiento. El equipo de desarrollo de Angular señaló que la integración no se ha mantenido y es probable que no funcione para la mayoría de las aplicaciones de Angular en la actualidad. 
  • Implementación de definitionAndBoundSpan, que ahora se prefiere a definition. La implementación de definitionse ha refactorizado y simplificado.
  • Desactivación de las API de plataforma-webworker. La inclusión de este soporte había sido experimental, para intentar ejecutar una aplicación completa en un Web Worker, para que el contenido web ejecutara scripts en segundo plano. Los defensores de Angular ya no buscan hacer esto.

Angular 8.1 también ofrece correcciones de errores para la herramienta de compilación Bazel, así como para el núcleo angular y el enrutador.

Nuevas funciones en Angular 8.0

Las mejoras en Angular 8, lanzadas en mayo de 2019, incluyen las siguientes: