La actualización de Angular 8 añade una gran cantidad de funcionalidades para navegadores modernos y mejora de rutas. Si quieres más información sobre la última versión de Angular puedes consultar las novedades de Angular 17 o nuestro tutorial sobre cómo actualizar a la última versión.
Se añade un modo de retrocompatibilidad para simplificar la actualización del path de proyectos grandes, permitiendo usar $route para los lazy loadings de AngularJS.
Generar un proyecto con el CLI producirá paquetes de JavaScript antiguo (ES2015) y moderno (ES2015+), esto ayudará a los navegadores modernos a cargar más deprisa las páginas al tener ya el compilador para ES2015+.
Se ha agregado una opción de navegación basada en hash a setUpLocationSync. Con este método, los desarrolladores ahora pueden pasar una opción a setUpLocationSync para garantizar que los cambios de ubicación se ejecuten en aplicaciones basadas en hash.
Se ha agregado soporte para tokenizar un subconjunto de una cadena de entrada y tokenizar cadenas de escape. CLI ya no soporta símbolos externos por defecto.
Con el respaldo de SASS para Bazel, las reglas se agregan al área de trabajo para un proyecto que requiere la extensión SASS a CSS. Con SASS, los desarrolladores pueden escribir estilos visuales para un sitio web en un lenguaje más avanzado que se compila en CSS.
Se ha implementado una corrección de errores en la que se ha aumentado el límite de memoria de nodos para ng-module para evitar problemas de memoria insuficiente con módulos grandes. Cuando la memoria no se libera correctamente o un proceso continúa usando más y más, puede producirse un fallo en el proceso.
Con la versión 8 vas a poder elegir entre el motor Ivy o el View Engine clásico para generar los proyectos, aunque Ivy no será viable para todo los usos, ya que su lanzamiento definitivo será en versiones de Angular posteriores.
Las ventajas de Ivy en este versión son:
Y para iniciar el proyecto debemos añadir enable-ivy al final del comando para iniciar el proyecto, ya que esto era una característica opcional:
Una vez creado el proyecto podemos ir al archivo tsconfig.app.json y veremos que dentro de angularCompilerOptions, la clave enableIvy está asociada a true, es decir que está activada, también podemos cambiarla por false si queremos volver a nuestro View Engine clásico en cualquier momento.
A continuación, iniciamos el proyecto de prueba con el siguiente comando dentro del directorio:
Ahora podemos observar que el código fuente del navegador que los hay algunos imports que tienen el atributo nomodule, esto significa que los navegadores que no soportan ES2015+ cargan ese import, mientras que los demás no lo necesitan al interpretar ES2015+ de manera nativa.
Esto se puede configurar en el archivo browserlist, cuya configuración por defecto es la siguiente:
Esto quiere decir que acepta las últimas dos versiones de cada navegador, además Chrome 41, Firefox ESR exceptuando Internet Explorer 9 y 11.