Configuración de ESLint y Prettier en proyectos Angular
Clase 3 de 36 • Curso de Angular Avanzado
Contenido del curso
- 7

Buenas prácticas con variables locales en Angular
09:14 - 8

Optimización de Imágenes en Angular con NG Optimizate Image
17:08 - 9

Optimización de Rutas Amigables para SEO en Angular
11:27 - 10

"Reactividad en Angular: Migración a Input Signals"
20:42 - 11

Migración de Inputs a Signals en Angular: Mejora de Rendimiento y Flujo
12:24 - 12

Migración de Outputs en Angular: De Decoradores a Funciones
07:35 - 13

Primitivas reactivas de Angular: Uso de Linked Signal y Computed
12:56 - 14

Sincronización de Componentes en Angular con Model y Signals
12:03 - 15

Interoperabilidad de RXJS y Signals en Angular
11:18 - 16

Conversión de Observables a Signals en Angular con toSignal
08:07 - 17

Interoperabilidad de RXDS y Signals en Angular: Uso de RX Resourcers
11:10 - 18

Manejo de Parámetros Reactivos con RX Resource en Angular
09:18 - 19

Manejo de Promesas y Fetch en Angular sin RXJS
07:59 - 20

Reactividad en Angular: Uso de Signals para Consultas DOM
09:00 - 21

Configuración de Prettier para HTML en Angular
05:28 quiz de Nuevas Funcionalidades en Angular
- 22

Server Side Rendering en Angular: Builders y Migración
10:17 - 23

Server Side Rendering con Angular: Mejora Rendimiento y SEO
13:26 - 24

Manejo de APIs del Navegador con Angular: Uso de AfterNextRender
09:43 - 25

Geolocalización y APIs: Creando un Mapa de Tiendas Cercanas
15:39 - 26

Habilitar Pre-rendering en Angular para Generación de Sitios Estáticos
11:26 - 27

Despliegue de Aplicaciones Node.js con App Fiber Hosting
18:12 quiz de Server-Side Rendering (SSR) y Navegación
- 28

Generación de Meta Tags Dinámicos con Angular y Open Graph
15:11 - 29

Creación de MetaTags Dinámicos en Angular
12:51 - 30

Proceso de Hydration y Event Replay en Angular
05:54 - 31

Implementación de Productos Relacionados en Angular eCommerce
09:26 - 32

Carga diferida de componentes en Angular para mejorar rendimiento
10:10 - 33

Optimización de Incremental Hydration en Angular
06:14 - 34

Configuración de Server Routing en Angular
10:43 - 35

Aplicaciones Sin Zone.js: Migración a Signals en Angular
13:02 - 36

Despliegue y Reactividad Avanzada en Angular
00:53
La implementación de buenas prácticas de código es fundamental para cualquier equipo de desarrollo que busque mantener un proyecto escalable y de alta calidad. En el ecosistema de Angular, existen herramientas específicas que nos ayudan a automatizar la detección y corrección de problemas comunes, permitiéndonos enfocarnos en lo que realmente importa: crear funcionalidades valiosas para nuestros usuarios.
¿Por qué son importantes las convenciones de código en Angular?
Uno de los mayores desafíos en equipos de desarrollo es lograr que todos los miembros sigan las mismas convenciones de código. Discusiones sobre si usar comillas simples o dobles, tabs versus espacios, y otras cuestiones similares pueden consumir tiempo valioso que podría invertirse en mejorar la aplicación.
Para solucionar este problema, existen dos tipos principales de herramientas:
- Linters: Aseguran que se sigan buenas prácticas de código y seguridad de forma automática, previniendo errores fáciles de detectar antes de que lleguen a la fase de revisión de código.
- Formateadores: Garantizan que todo el código tenga la misma estructura y sea fácil de leer, independientemente de quién lo haya escrito.
En proyectos de JavaScript o TypeScript, las herramientas más utilizadas son ESLint y Prettier, que pueden configurarse específicamente para proyectos Angular.
¿Cómo aprovechar las migraciones automáticas de Angular?
Angular incluye herramientas de migración que ayudan a mantener buenas prácticas de código. Una de las más útiles es la migración "clean out unused imports".
Limpieza automática de importaciones no utilizadas
Para utilizar esta funcionalidad:
- Detén el servidor de desarrollo si está en ejecución
- Ejecuta el siguiente comando:
ng generate @angular/core:clean-up-unused-imports
Este comando analiza automáticamente tu código y elimina las importaciones de componentes, directivas o pipes que no estén siendo utilizados en tus templates. Por ejemplo, si has importado HeaderComponent pero no lo utilizas en tu HTML, Angular lo detectará y eliminará esa importación.
Beneficios:
- Reduce el tamaño final de la aplicación
- Mantiene el código limpio y legible
- Previene posibles confusiones sobre qué componentes están realmente en uso
¿Cómo implementar ESLint en un proyecto Angular?
Angular proporciona una guía de estilo oficial (Angular Core Style Guide) que establece convenciones para nombrar componentes, aplicar el principio de responsabilidad única y otras buenas prácticas. Sin embargo, confiar solo en documentación no garantiza que todos los desarrolladores sigan estas reglas.
Instalación y configuración de ESLint
Para automatizar la verificación de estas buenas prácticas:
- Ejecuta el siguiente comando:
ng add @angular-eslint/schematics
-
Este comando instalará ESLint configurado específicamente para Angular, creando archivos como
.eslintrc.jsy actualizandopackage.jsonyangular.json. -
Una vez instalado, puedes ejecutar:
ng lint
Este comando mostrará todos los errores y advertencias en tu código, clasificados por gravedad. Algunos problemas comunes que detectará incluyen:
- Problemas de accesibilidad
- Importaciones no utilizadas
- Constructores vacíos innecesarios
- Convenciones de nomenclatura incorrectas
Corrección automática de problemas
Para solucionar automáticamente los problemas que puedan ser corregidos sin intervención manual:
ng lint --fix
Este comando corregirá automáticamente las advertencias, aunque los errores más graves generalmente requerirán que los soluciones manualmente.
¿Cómo solucionar problemas específicos detectados por ESLint?
Problemas en archivos TypeScript
Algunos problemas comunes incluyen:
-
Importaciones no utilizadas: Simplemente elimina las importaciones que no estén siendo utilizadas en tu código.
-
Constructores vacíos: Si tienes un constructor que no hace nada, puedes eliminarlo completamente.
-
Convenciones de nomenclatura: Por ejemplo, las directivas personalizadas deberían tener un prefijo como "app" para evitar colisiones con otras bibliotecas.
Problemas de accesibilidad en HTML
ESLint también puede detectar problemas en tus templates HTML, especialmente relacionados con accesibilidad:
- Imágenes sin atributos de accesibilidad: Para imágenes que funcionan como botones, debes agregar atributos como:
<img [src]="product.image" (click)="onSelect()" tabindex="0" role="button" (keydown.enter)="onSelect()">
Estos atributos permiten:
tabindex="0": Hacer focus en el elementorole="button": Indicar a los lectores de pantalla que es un elemento clickeable(keydown.enter)="onSelect()": Permitir la navegación por teclado
Beneficios de mejorar la accesibilidad:
- Mejor experiencia para usuarios con discapacidades visuales
- Cumplimiento de estándares web
- Mejor SEO y compatibilidad con diferentes dispositivos
Para visualizar mejor estos errores en tu editor, asegúrate de instalar la extensión de ESLint para tu IDE, que marcará los problemas directamente en el código mientras trabajas.
La implementación de estas herramientas no solo mejora la calidad de tu código, sino que también aumenta la productividad del equipo al automatizar tareas repetitivas de revisión. ¿Has implementado linters en tus proyectos? Comparte en los comentarios cómo te fue solucionando los errores detectados por ESLint en tu aplicación Angular.