Configuración de Prettier para HTML en Angular
Clase 21 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 integración de herramientas de calidad de código como Prettier y ESLint es fundamental para mantener proyectos Angular organizados y libres de errores. Estas herramientas no solo mejoran la legibilidad del código, sino que también garantizan consistencia en todo el proyecto, especialmente cuando trabajamos con diferentes tipos de archivos como HTML y TypeScript. Aprender a configurarlas correctamente puede ahorrarnos muchos dolores de cabeza durante el desarrollo.
¿Cómo solucionar errores de formateo con Prettier en archivos HTML de Angular?
Cuando trabajamos con Angular, es común encontrarnos con errores de formateo al utilizar herramientas como Prettier. Uno de los problemas más frecuentes ocurre cuando Prettier intenta aplicar reglas de formateo de Angular a archivos HTML normales, lo que puede generar errores inesperados.
En el caso específico que estamos analizando, al ejecutar el comando ng lint --fix, aparece un error relacionado con el archivo HTML principal de la aplicación. El error sugiere que hay un problema con la sintaxis, como si fuera un error para Twitter, cuando en realidad es una definición normal de HTML.
El problema radica en que Prettier está confundiendo el HTML normal con la sintaxis específica de Angular, aplicando reglas que no corresponden al contexto correcto.
Configuración de Prettier para diferenciar entre HTML normal y templates de Angular
Para solucionar este problema, necesitamos modificar la configuración de Prettier para que trate de manera diferente los archivos HTML normales y los templates de componentes de Angular. Esto se logra mediante la siguiente configuración:
{
"overrides": [
{
"files": "*.html",
"options": {
"parser": "html"
}
},
{
"files": "*.component.html",
"options": {
"parser": "angular"
}
}
]
}
Con esta configuración estamos indicando a Prettier que:
- Para cualquier archivo que termine en
.html, utilice el parser de HTML normal. - Para archivos que terminen específicamente en
.component.html, utilice el parser de Angular.
Esta distinción es crucial porque los templates de componentes de Angular tienen una sintaxis especial que incluye directivas, binding de datos y otras características que no existen en el HTML estándar.
¿Es necesario mantener comandos separados para linting y formateo?
Una vez que hemos integrado ESLint con Prettier, surge la pregunta: ¿necesitamos mantener comandos separados para el linting y el formateo?
La respuesta es que probablemente no sea necesario. Cuando ejecutamos ng lint --fix, este comando no solo corrige problemas de buenas prácticas y warnings de JavaScript, sino que también aplica las reglas de formateo de Prettier gracias a la integración que hemos configurado.
Por lo tanto, mantener un comando adicional como npm run format podría considerarse redundante, ya que estaríamos ejecutando dos procesos que hacen esencialmente lo mismo.
Optimización de scripts en package.json
Para simplificar nuestro flujo de trabajo, podemos modificar los scripts en nuestro package.json:
{
"scripts": {
"lint:fix": "ng lint --fix"
}
}
Este enfoque es especialmente útil para tareas de integración continua, donde queremos minimizar el número de comandos necesarios para verificar y corregir nuestro código.
¿Qué beneficios aporta esta configuración a nuestro proyecto Angular?
La correcta configuración de herramientas de calidad de código como Prettier y ESLint proporciona varios beneficios importantes:
- Consistencia en el código: Todos los archivos seguirán las mismas reglas de formateo, independientemente de quién los haya escrito.
- Detección temprana de errores: Los linters pueden identificar problemas potenciales antes de que se conviertan en bugs reales.
- Mejora de la legibilidad: Un código bien formateado es más fácil de leer y entender.
- Ahorro de tiempo: Al automatizar el formateo y la corrección de errores comunes, los desarrolladores pueden centrarse en resolver problemas más complejos.
- Facilita la colaboración: Cuando todo el equipo sigue las mismas convenciones de código, la colaboración se vuelve más fluida.
Esta configuración es especialmente valiosa en aplicaciones Angular complejas, como las de tipo backoffice o enterprise que contienen numerosos formularios y componentes interactivos.
La correcta configuración de estas herramientas nos prepara para avanzar hacia técnicas más sofisticadas como el Server-Side Rendering (SSR), que será fundamental para aplicaciones que requieren indexación y SEO, temas que se abordarán en módulos posteriores.
¿Has tenido problemas similares con la configuración de Prettier en tus proyectos Angular? Comparte tu experiencia y las soluciones que has encontrado en los comentarios.