Prettier elimina debates de formato en tu aplicación Expo y cualquier paquete compartido en un monorepo. El ordenamiento de importaciones mantiene react-native por encima de importaciones de características locales para que los diffs permanezcan legibles cuando las pantallas crecen más allá de una docena de dependencias.
Prettier analiza cada archivo en un AST y lo reimprime con reglas fijas - no "sugiere" estilo, lo aplica.
Los plugins de ordenamiento de importaciones se ejecutan después del pase de impresora de Prettier, reordenando declaraciones import para que coincidan con grupos de regex importOrder.
Metro agrupa cualquier orden de importación que envíes; ordenamiento es una victoria de mantenibilidad, no una optimización de tiempo de ejecución.
eslint-config-prettier es una puerta unidireccional: ESLint maneja corrección (react-hooks/exhaustive-deps), Prettier maneja espacios en blanco y comillas.
En monorepos, coloca config en la raíz y ejecuta Prettier desde la raíz para que packages/ui y apps/mobile nunca se desvíen.
// Prettier preserva importaciones de solo tipo cuando importOrderType es "mixed"import type { Href } from "expo-router";import { useRouter } from "expo-router";// importOrderType: "inline" fusiona type y value del mismo módulo// importOrderType: "mixed" mantiene importaciones de tipo agrupadas con su módulo
Prettier vs pelea de formateo de ESLint - Ambos intentan controlar comillas y puntos y comas, produciendo un ciclo de fix infinito en el editor. Solución: Añade eslint-config-prettier después de eslint-config-expo en flat config; nunca uses eslint-plugin-prettier como corredor de reglas.
Formateo de .expo/types o ios/ - Los tipos de rutas generados y las carpetas prebuild crean diffs ruidosos enormes. Solución: Añade .expo/, ios/, y android/ a .prettierignore a menos que intencionalmente formatees proyectos nativos confirmados.
Dos ordenadores de importación - Plugin de Prettier y ESLint import/order con diferentes reglas de grupo reshuffle importaciones en cada guardado. Solución: Desactiva import/order en ESLint cuando el plugin de Prettier es el dueño del ordenamiento.
--write en CI - CI formatea archivos en el runner pero no los confirma, así que el trabajo pasa mientras main permanece sin formato. Solución: Usa prettier --check en CI; reserva --write para ejecuciones locales y lint-staged hooks.
Archivos de bloqueo formateados por error - Sin .prettierignore, Prettier toca package-lock.json y crea conflictos de merge. Solución: Ignora explícitamente archivos *lock*.
Editor usa formateador incorrecto - VS Code puede usar por defecto el formateador de TypeScript integrado para .tsx. Solución: Configura "editor.defaultFormatter": "esbenp.prettier-vscode" para [typescriptreact] e instala la extensión de Prettier.