Francisco Samuel Torres Lopez
tengo la extensión de ESLint pero las carpetas no me aparecen en amarrillo o en rojo. alguien sabe como puedo hacer?
Nicolas Molina
ProfesorDebes instalar la extensión de EsLint en tu VsCode o Cursor
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:
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:
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:
¿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:
ng add @angular-eslint/schematics
Este comando instalará ESLint configurado específicamente para Angular, creando archivos como .eslintrc.js y actualizando package.json y angular.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:
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:
<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 tecladoBeneficios de mejorar la accesibilidad:
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.
Francisco Samuel Torres Lopez
tengo la extensión de ESLint pero las carpetas no me aparecen en amarrillo o en rojo. alguien sabe como puedo hacer?
Nicolas Molina
ProfesorDebes instalar la extensión de EsLint en tu VsCode o Cursor
Reinaldo Mendoza
Jhoan Sebastián García Álvarez
Por si tienen error de versión
ng add angular-eslint@19
Diego Frank Lipa Choque
Paso limpio {;)}
Gherson Eliezer Mena Alvarado
Héctor Salinas
En angular 20 o superior verifiquen los comandos porque cambio. por ejemplo en la version 20 el clean up unused import se hace de esta manera:
ng generate @angular/core:cleanup-unused-imports
Siempre vean la documentación seleccionando la versión que esten usando, luego al final del menu de navegación Reference -> Migrations
Marcos Vázquez González
Los comandos mencionados son:
ng generate @angular/core:clean up: Este comando ayuda a limpiar automáticamente componentes, directivas y pipes no utilizados en tu proyecto Angular.ng add @angular/eslint: Instala ESLint en tu proyecto Angular para asegurar buenas prácticas de código y convenciones.ng lint: Ejecuta ESLint para analizar tu código y detectar posibles errores o violaciones de las reglas.ng lint --fix: Intenta solucionar automáticamente los problemas detectados por ESLint que sean corregibles.Alexander Coronell
Si tienen algun problema con @angular-lint/schematics, y al correr el comando [ng lint] el error:
Could not find the '@angular-eslint/builder:lint' builder's node package.
La solución es (Aplicada a Angular 19):
pnpm install @angular-eslint/builder@19 @angular-eslint/eslint-plugin@19 @angular-eslint/eslint-plugin-template@19 --save-dev
Exneider Villalba
Pedro Arias
1. tabindex="0"
Tab).<img> para navegación con teclado.0: Significa que se incluye en el orden de tabulación natural de la página.2. role="button"
3. (keydown.enter)="changeCover(img)"
Enter mientras el <img> está enfocado, se ejecuta el método changeCover(img).Luis Angel Castillo Vega
Porfin!! el avanzado!!
Ya queria llegar aqui
Sergio Estrella
ProfesorRealicen esta config lo más pronto que puedan en su proyecto!
De lo contrario, la deuda técnica los va a atormentar.
No sufran lo que yo D:
Emilio Nicolás Mendoza Patti
Un tip que esta bueno y que utilizaba para llegar rapido a los archivos de error y corregir es hacer alt + click o option + click y abre el archivo:
Reinaldo Mendoza
Reinaldo Mendoza
Ja, justo estamos discutiendo las convenciones al inicio de nuevo proyecto