Novidades

Linter e Formatter JavaScript: Guia de Configuração Automática

ResumoESLint e Prettier são ferramentas complementares para JavaScript que automatizam linting e formatação de código. ESLint identifica erros e padrões problemáticos, enquanto Prettier padroniza estilo automaticamente. A configuração conjunta permite integração com editores de código e hooks de commit via Husky, garantindo código limpo e consistente sem intervenção manual.

Quer manter seu código JavaScript limpo e padronizado sem esforço manual? Este guia mostra como configurar ESLint e Prettier para lintar e formatar automaticamente, com integração a editores e hooks de commit.

Zeca Maranhão
13 bibliotecas JavaScript frontend para simplificar seu códi

13 bibliotecas JavaScript frontend para simplificar seu códi — Foto: Reprodução / Blog Sem Juízo

Manter o código JavaScript consistente é uma batalha que ninguém deveria travar manualmente. Com ESLint (linter) e Prettier (formatter) configurados automaticamente, seu editor corrige erros e padroniza estilo enquanto você digita, sem discussão de equipe sobre espaços ou ponto e vírgula. Este guia cobre a configuração do zero, com integração a Git hooks para garantir que nada passe batido.

Pré-requisitos

  • Node.js (v16 ou superior) e npm/yarn instalados.
  • Um projeto JavaScript existente (ou crie uma pasta vazia com package.json).
  • Editor de código (VS Code recomendado, mas funciona em qualquer um com suporte a LSP).

Passo 1: Instalar ESLint e Prettier

No terminal do seu projeto, instale os pacotes como dependências de desenvolvimento:

npm install --save-dev eslint prettier

Dica: Use --save-dev porque essas ferramentas só são necessárias durante o desenvolvimento, não em produção.

Erro comum: Instalar globalmente em vez de localmente. Prefira a instalação local para cada projeto, evitando conflitos de versão entre equipes.

Passo 2: Configurar o ESLint

Inicialize o ESLint com:

npx eslint --init

O assistente pergunta sobre o estilo do seu código (CommonJS/ES modules, React ou não, etc.). Escolha as opções que refletem seu projeto. Ao final, ele gera um arquivo .eslintrc.json (ou .js/.yaml).

Dica: Se você usa React, selecione a opção que inclui regras para JSX. Se não, desmarque.

Erro comum: Pular essa etapa e usar o ESLint sem configuração. Ele não fará nada útil, as regras padrão são mínimas.

Passo 3: Configurar o Prettier

Crie um arquivo .prettierrc na raiz do projeto com suas preferências:

{ "semi": true, "singleQuote": true, "tabWidth": 2, "trailingComma": "all" }

Dica: Defina singleQuote: true se sua equipe prefere aspas simples. O Prettier respeita essas opções globalmente.

Erro comum: Esquecer de criar o arquivo e esperar que o Prettier use configurações mágicas. Ele só funciona com configuração explícita.

Passo 4: Integrar ESLint e Prettier

Instale o eslint-config-prettier para desligar regras do ESLint que conflitam com o Prettier:

npm install --save-dev eslint-config-prettier

Depois, adicione "prettier" ao array extends no .eslintrc.json:

{ "extends": ["some-other-config-you-use", "prettier"] }

Dica: Coloque "prettier" por último no extends para que ele sobrescreva regras conflitantes.

Erro comum: Achar que o Prettier substitui o ESLint. Na verdade, eles se complementam: ESLint pega erros lógicos, Prettier cuida da formatação.

Passo 5: Automatizar com o Editor e Git Hooks

No VS Code, instale as extensões ESLint e Prettier. No settings.json do editor, ative a formatação ao salvar:

{ "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { "source.fixAll.eslint": true } }

Para garantir que ninguém pule a formatação, instale husky e lint-staged:

npm install --save-dev husky lint-staged npx husky init echo "npx lint-staged" > .husky/pre-commit

No package.json, configure:

{ "lint-staged": { "*.js": ["eslint --fix", "prettier --write"] } }

Erro comum: Configurar apenas no editor e esquecer o hook. O commit pode passar com código não formatado se outro desenvolvedor não tiver as extensões.

Checklist final

  • [ ] ESLint e Prettier instalados como devDependencies.
  • [ ] .eslintrc.json criado com eslint --init.
  • [ ] .prettierrc com suas preferências de estilo.
  • [ ] eslint-config-prettier no extends.
  • [ ] Editor formatando ao salvar.
  • [ ] Husky + lint-staged rodando no pre-commit.

FAQ

Qual a diferença entre linter e formatter?

Linter (ESLint) analisa o código em busca de erros lógicos, variáveis não usadas e práticas ruins. Formatter (Prettier) apenas reorganiza a formatação, espaços, quebras de linha, aspas, sem se importar com a lógica.

Preciso dos dois ou um só basta?

Você pode usar apenas o ESLint, que tem regras de formatação próprias. Mas o Prettier é mais consistente e evita debates de estilo. A combinação dos dois é o padrão da indústria.

Como desabilitar uma regra específica do ESLint?

No .eslintrc.json, use a chave "rules":

{ "rules": { "no-console": "off" } }

O que fazer se o ESLint e o Prettier entrarem em conflito?

O eslint-config-prettier desliga regras do ESLint que conflitam. Se ainda houver conflito, verifique se ele está no final do array extends e se não há regras manuais conflitantes.

Prettier funciona com TypeScript?

Sim. Instale o parser @typescript-eslint/parser e use o Prettier normalmente. Ele formata arquivos .ts e .tsx sem configuração extra.

Como rodar linter e formatter manualmente?

Use no terminal: npx eslint src/ --fix npx prettier --write src/ O flag --fix corrige automaticamente o que o ESLint puder arrumar.

Zeca Maranhão

Editoria Novidades

Zeca Maranhão cobre o setor de meios de pagamento e crédito no Blog Sem Juízo. Análises técnicas, sem viés comercial.

Leia também · Novidades