Angular 10: fin de soporte y cómo actualizar
Angular 10 fue una versión pequeña que llegó cuatro meses después de la v9. No tiene soporte desde diciembre de 2021 y está doce versiones mayores detrás de la actual.
Fechas de lanzamiento y soporte
Angular 10 se publicó en junio de 2020. El soporte activo terminó en diciembre de 2020 y el soporte de largo plazo terminó en diciembre de 2021. Ya no recibe parches de seguridad. Todas las versiones están en Soporte y fin de vida de las versiones de Angular.
Qué introdujo Angular 10
El equipo de Angular describió esta versión como más pequeña de lo habitual. Los cambios principales fueron:
- Un selector de rango de fechas en Angular Material.
- Advertencias por imports CommonJS. El build avisa cuando una dependencia está empaquetada como CommonJS, porque esos bundles limitan la optimización.
- Configuración estricta opcional.
ng new --strictactiva TypeScript estricto, verificación estricta de tipos en templates y presupuestos de bundle más bajos. - Dependencias actualizadas. TypeScript 3.9,
tslib2.0 y TSLint 6. - Una nueva configuración de navegadores por defecto para proyectos nuevos, que desactiva los builds ES5 salvo que agregues en
.browserslistrclos navegadores que los necesitan. - Paquetes más livianos. El Angular Package Format deja de incluir los bundles ESM5 y FESM5.
- Deprecación de IE 9, IE 10 e Internet Explorer Mobile.
Qué revisar al actualizar
De 10 a 11:
- Se requiere TypeScript 4.0.
- Se elimina el soporte para IE9, IE10 e IE Mobile.
- Router:
relativeLinkResolutionpasa acorrectedpor defecto, se eliminapreserveQueryParamsy se eliminan los valores antiguos deinitialNavigation. - Se elimina
ViewEncapsulation.Native. UsaViewEncapsulation.ShadowDom. - Los overrides de providers con
TestBed.overrideProviderdespués de inicializar TestBed dejan de aplicarse. - Se elimina
@angular/platform-webworker. - TSLint y Codelyzer quedan deprecados en la v11.
De 11 a 12:
- Se requiere TypeScript 4.2, y Node.js 10 deja de estar soportado.
XhrFactorypasa de@angular/common/httpa@angular/common.- El soporte para IE11 queda deprecado.
ng buildgenera un build de producción por defecto. Una migración opcional aplica esto a los proyectos existentes.- Angular Material y el CDK adoptan el sistema de módulos de Sass. Los proyectos deben usar el paquete
sassy dejarnode-sass. - Los atributos
minymaxen inputs numéricos ahora disparan la validación de formularios.
Un plan corto de actualización
- Actualiza al último parche de 10.2.x, confirma que el build y las pruebas pasan, y haz commit.
- Ejecuta
ng update @angular/core@11 @angular/cli@11y luegong update @angular/material@11si usas Material. - Actualiza las librerías de terceros a versiones que soporten Angular 11.
- Corrige los errores de compilación y las advertencias de deprecación, corre las pruebas y publica.
- Pasa las máquinas de build a Node 12 o 14 antes del paso a la v12.
- Repite con cada versión mayor. La siguiente parada es Angular 11.
Cuándo conviene pedir ayuda
Doce actualizaciones seguidas son trabajo de rutina cuando la app tiene pruebas y librerías al día. Se convierten en un proyecto cuando no las tiene. Conviene pedir ayuda si la app todavía apunta a Internet Explorer, si el linting y las pruebas e2e dependen de TSLint y Protractor, o si nadie en el equipo hizo antes una actualización de varias versiones. El plan completo está en Estrategia para actualizar versiones antiguas de Angular. Para un producto grande con varios equipos, compara las opciones en Reescribir, híbrido o microfrontends.
Más en esta sección
- Angular 11: fin de soporte y cómo actualizar
- Angular 12: fin de soporte y cómo actualizar
- Angular 13: fin de soporte y cómo actualizar
- Angular 14: fin de soporte y cómo actualizar
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn