Code Formatting

Prettier

Prettier é o formatador de código opinativo que encerra debates sobre estilo. Ele analisa seu código e o reimprime de forma consistente, para que ninguém discuta sobre espaçamento, aspas ou pontos e vírgulas.

beginner12 min readUpdated 15 de set. de 2026
.prettierrc
json
// .prettierrc
{
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 100,
  "arrowParens": "always"
}
O que é
Um formatador opinativo
Abordagem
Parse e reprint
Config
Poucas opções
Linguagens
JS, TS, CSS, HTML, JSON, MD
CI
--check falha em caso de diff
Editores
Format on save

Por que importa

Por que o Prettier encerra discussões

Um estilo consistente

Todo arquivo parece igual, independentemente de quem o escreveu, o que torna os diffs menores e as revisões mais rápidas.

Sem debates de estilo

O formatador decide. As equipes param de gastar tempo de review com espaçamento, aspas e quebras de linha.

Roda em qualquer lugar

Formate via CLI, ao salvar no seu editor, em um hook de pre-commit e como uma verificação no CI.

O panorama completo

As três ideias por trás do Prettier

Um parser, um printer determinístico e um pequeno conjunto de opções. A formatação é decidida uma vez e aplicada em todo lugar.

O parser

Leitura

Entende a sintaxe de cada linguagem suportada e constrói uma árvore de sintaxe.

O printer

Formatação

Reimprime a árvore com um layout determinístico, ignorando seus espaços em branco originais.

A config

Opções

Um punhado de opções e arquivos de ignore controlam as poucas decisões que restam para você.

Prettier em resumo

O núcleo do Prettier

.prettierrc

Um pequeno arquivo de configuração para as opções que você realmente deseja alterar.

prettier --write

Formata arquivos no próprio local via linha de comando.

prettier --check

Falha se qualquer arquivo não estiver formatado, ideal para CI.

Integração com editor

Format on save para que os arquivos estejam sempre formatados enquanto você trabalha.

eslint-config-prettier

Desativa regras do ESLint que conflitam com o Prettier.

.prettierignore

Ignora outputs de build, arquivos gerados e dependências.

Uma breve historia

O formatador que tornou o estilo um problema resolvido

  1. 2017

    Lançamento do Prettier

    James Long apresenta um formatador opinativo que reimprime o código a partir de sua AST.

    17
  2. 2018

    Adoção generalizada

    Prettier torna-se padrão em projetos JavaScript, TypeScript, CSS e markdown.

    18
  3. 2020

    Prettier 2

    Novos padrões e melhor suporte para TypeScript e JSX.

    20
  4. 2023

    Prettier 3

    Foco em ESM, plugins assíncronos e performance aprimorada.

    23
  5. Hoje

    O padrão de formatação

    Utilizado pela maioria das equipes e integrado em diversos scaffolds de frameworks.

    Hoje

O guia completo

Prettier: Tudo que voce precisa saber

O que é o Prettier?

O Prettier é um formatador de código opinativo. Ele analisa o seu código transformando-o em uma árvore de sintaxe e o reimprime com um layout determinístico, ignorando os espaços em branco que você escreveu. O resultado depende apenas da estrutura do código e de um pequeno conjunto de opções, portanto, a mesma entrada sempre produzirá a mesma saída.

Esse determinismo é o ponto principal. As discussões sobre estilo desaparecem porque quem decide é o formatador, não a equipe. Os diffs diminuem para mostrar apenas as mudanças reais em vez de alterações irrelevantes de espaçamento, e os revisores gastam seu tempo com a lógica e o design. O Prettier é uma das poucas ferramentas que reduz a fricção em uma base de código de forma mensurável.

Configuração

O Prettier funciona sem a necessidade de configuração, mas você pode definir algumas opções em .prettierrc.

{
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 100,
  "tabWidth": 2,
  "arrowParens": "always"
}

Essas são as opções que a maioria das equipes costuma ajustar. Além delas, o Prettier toma as decisões. Quanto menos opções você definir, mais consistente será o resultado entre os projetos e menor será a manutenção.

Executando o Prettier

Formate arquivos no local ou verifique as alterações sem gravá-las.

npx prettier --write .
npx prettier --check .
npx prettier --write src/app.tsx

--write reformata e salva; --check reporta os arquivos que seriam alterados e retorna um código de saída diferente de zero, que é exatamente o que o CI precisa. Adicione um script para que os comandos sejam consistentes.

{
  "scripts": {
    "format": "prettier --write .",
    "format:check": "prettier --check ."
  }
}

Ignorando arquivos

.prettierignore lista os caminhos a serem ignorados, utilizando a mesma sintaxe do .gitignore.

dist
coverage
pnpm-lock.yaml
*.generated.ts

Ignorar a saída do build e arquivos gerados é importante: formatá-los gera ruído que será sobrescrito no próximo build e pode até quebrar a geração de código que espera um layout específico.

Integração com o editor

Instale a extensão do Prettier no seu editor e ative a opção de formatar ao salvar (format on save). É aqui que o Prettier traz o maior benefício: você nunca precisa se preocupar com a formatação, e cada salvamento deixa o arquivo limpo. Isso também significa que você pode usar --check no CI com confiança, pois a formatação acontece continuamente, em vez de exigir uma grande limpeza ao final.

Trabalhando com ESLint

O Prettier e o ESLint possuem sobreposições em regras de estilo e, se deixados sozinhos, entrarão em conflito. A solução padrão é deixar o Prettier cuidar da formatação e desativar as regras conflitantes do ESLint.

// eslint.config.js
import js from "@eslint/js";
import prettier from "eslint-config-prettier";

export default [js.configs.recommended, prettier];

O eslint-config-prettier desativa todas as regras do ESLint que conflitam com o Prettier, permitindo que o ESLint foque na qualidade do código e o Prettier no layout. Se você deseja que problemas de formatação sejam exibidos como erros de lint, o eslint-plugin-prettier executa o Prettier como uma regra, embora muitas equipes prefiram manter os dois separados.

Pre-commit hooks

Formatar o código antes de um commit mantém o CI verde e o histórico limpo.

{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,css,md}": "prettier --write"
  }
}

Combinado com um hook runner como o husky, isso formata apenas os arquivos em stage, garantindo que os commits continuem rápidos. É uma configuração simples que evita toda uma categoria de comentários de “código não formatado” durante o code review.

Onde o Prettier se encaixa

O Prettier serve apenas para formatação. Ele não encontra bugs, não impõe tipos nem verifica imports — essas tarefas pertencem ao ESLint e ao verificador de tipos. Um toolchain saudável executa os três: Prettier para o layout, ESLint para a qualidade e TypeScript para os tipos. Cada um tem uma função específica e nenhum deles conflita com os outros.

Melhores práticas

  • Aceite os padrões, a menos que sua equipe tenha um motivo forte para alterar algum.
  • Faça o commit de um .prettierrc para que todos os editores e execuções de CI estejam alinhados.
  • Adicione .prettierignore para a saída do build e arquivos gerados.
  • Configure a formatação ao salvar no editor.
  • Execute --check no CI e --write em um pre-commit hook.
  • Desative regras conflitantes do ESLint com eslint-config-prettier.
  • Mantenha a lista de opções curta.

Erros comuns

  • Deixar que o ESLint e o Prettier formatem o código simultaneamente, gerando conflitos.
  • Formatar arquivos gerados automaticamente, criando diffs poluídos.
  • Pular a verificação de CI, permitindo que código não formatado seja mergeado.
  • Alterar opções por projeto sem motivo, perdendo a consistência entre diferentes projetos.
  • Executar o Prettier no repositório inteiro em um pre-commit hook, tornando os commits lentos.
  • Usar o Prettier para impor regras semânticas que deveriam pertencer ao ESLint.

Próximos passos

O Prettier elimina toda uma categoria de trabalho repetitivo. Combine-o com o ESLint para qualidade, TypeScript para segurança de tipos, e integre ambos ao seu projeto Vite e ao seu CI. Depois, configure a formatação ao salvar e nunca mais se preocupe com espaçamentos.

Dividindo responsabilidades

Deixe o Prettier formatar e o ESLint encontrar bugs. Desativar as regras estilísticas do ESLint evita que duas ferramentas lutem pelo mesmo código.

Preferir
// eslint.config.js
import prettier from
  "eslint-config-prettier";

export default [
  js.configs.recommended,
  prettier,
];
Evitar
// ESLint stylistic rules and
// Prettier both rewrite the
// same lines and disagree

Impondo a formatação

Verifique a formatação no CI para que código não formatado não possa ser mergeado. Um hook de pre-commit detecta isso ainda mais cedo.

Preferir
# CI
npx prettier --check .

# before commit
npx prettier --write .
Evitar
# no check at all, so
# formatting drifts and
# diffs fill with noise

Perguntas frequentes

Perguntas frequentes

Keep learning

Related topics from the roadmap.

$ comecar a aprender

Pronto para aprender Prettier?

Nosso tutorial interativo te guia por Prettier passo a passo — com quizzes e codigo real que voce pode executar no navegador.