O Prettier remove debates de formatação entre seu aplicativo Expo e quaisquer pacotes compartilhados em um monorepo. A ordenação de importações mantém react-native acima das importações de recursos locais para que as diferenças permaneçam legíveis quando as telas crescem além de uma dúzia de dependências.
O Prettier analisa cada arquivo em um AST e o reimprime com regras fixas - ele não "sugere" estilo, ele o impõe.
Plugins de ordenação de importações rodam depois da passagem do impressor do Prettier, reordenando as instruções import para corresponder aos grupos de regex importOrder.
O Metro agrupa qualquer ordem de importação que você envia; a ordenação é uma vitória de manutenibilidade, não uma otimização de tempo de execução.
eslint-config-prettier é um portão unidirecional: ESLint cuida da correção (react-hooks/exhaustive-deps), Prettier cuida de espaços em branco e aspas.
Em monorepos, coloque a configuração na raiz e execute o Prettier a partir da raiz para que packages/ui e apps/mobile nunca se desviem.
// Prettier preserva importações apenas de tipo quando importOrderType é "mixed"import type { Href } from "expo-router";import { useRouter } from "expo-router";// importOrderType: "inline" mescla tipo e valor do mesmo módulo// importOrderType: "mixed" mantém importações de tipo agrupadas com seu módulo
Conflito de formatação Prettier vs ESLint - Ambos tentam controlar aspas e ponto e vírgula, produzindo um loop de correção infinito no editor. Correção: Adicione eslint-config-prettier após eslint-config-expo na configuração plana; nunca use eslint-plugin-prettier como um executor de regras.
Formatação de .expo/types ou ios/ - Tipos de rota gerados e pastas pré-compiladas criam diffs enormes e barulhentos. Correção: Adicione .expo/, ios/ e android/ a .prettierignore, a menos que você formate intencionalmente projetos nativos commitados.
Dois ordenadores de importação - Plugin Prettier e ESLint import/order com regras de grupo diferentes reorganizam as importações a cada salvamento. Correção: Desabilite import/order no ESLint quando o plugin Prettier for o responsável pela ordenação.
--write em CI - A CI formata os arquivos no runner, mas não os commita, então o trabalho passa enquanto main permanece sem formatação. Correção: Use prettier --check em CI; reserve --write para execuções locais e hooks lint-staged.
Arquivos de lock formatados por engano - Sem .prettierignore, o Prettier mexe em package-lock.json e cria conflitos de mesclagem. Correção: Ignore explicitamente os arquivos *lock*.
Editor usa o formatador errado - O VS Code pode usar o formatador TypeScript integrado por padrão para .tsx. Correção: Defina "editor.defaultFormatter": "esbenp.prettier-vscode" para [typescriptreact] e instale a extensão Prettier.