O Que É o ESLint? O Linter de JavaScript Explicado
O ESLint é um linter que analisa estaticamente JavaScript e TypeScript para detectar prováveis bugs e impor um estilo de código consistente antes mesmo de o código ser executado.
O ESLint lê seu código sem executá-lo e sinaliza padrões que provavelmente são erros ou que violam as convenções da sua equipe. Ele é altamente configurável através de regras e plugins, e tornou-se um quality gate padrão em pipelines de JavaScript e TypeScript.
O que é o ESLint
O ESLint é uma ferramenta de análise estática extensível por plugins para JavaScript e TypeScript. Ele analisa o código em uma AST e executa um conjunto configurável de regras sobre ele, reportando problemas como warnings ou errors. Plugins o estendem para frameworks (React, Vue) e verificações específicas de TypeScript.
Regras e configuração
Cada regra verifica uma coisa, como proibir variáveis não utilizadas ou exigir uma ordem específica de imports. Você habilita regras e define sua severidade em um arquivo de configuração (flat config ou o antigo .eslintrc), muitas vezes estendendo um preset compartilhado. Muitas regras são corrigíveis automaticamente com "eslint --fix", que reescreve o código para satisfazê-las.
Um exemplo de uso
Faça lint de um diretório e corrija automaticamente o que puder ser corrigido.
# report problems
npx eslint src/
# auto-fix the fixable ones
npx eslint src/ --fixPapel no CI/CD
No CI, o ESLint roda como um quality gate que retorna código diferente de zero quando erros são encontrados, falhando o build em violações de regras. Executá-lo com "--max-warnings 0" transforma warnings em falhas rígidas para maior rigor. Como o linting é rápido e detecta problemas cedo, geralmente é uma das primeiras verificações em um pipeline, antes dos testes.
Alternativas
Biome e Oxlint são linters mais recentes e muito mais rápidos, baseados em Rust, que visam substituir o ESLint e o Prettier em termos de velocidade. O TSLint era o antigo linter de TypeScript, agora descontinuado em favor do ESLint. O ESLint continua sendo o padrão graças ao seu vasto ecossistema de regras e plugins.
Principais conclusões
- O ESLint analisa estaticamente JS/TS para detectar bugs e impor estilo.
- As regras são configuráveis, e muitos problemas são corrigíveis automaticamente com --fix.
- No CI, ele falha o build em caso de erros; execute-o cedo como um quality gate rápido.