Skip to content

Oxlint

O Oxlint (/oʊ-ɛks-lɪnt/) é um linter de alto desempenho para JavaScript e TypeScript, construído sobre a stack de compilador Oxc.

Pensado para escala

O Oxlint foi feito para repositórios grandes e ambientes de CI. Sua arquitetura remove gargalos estruturais que limitam o desempenho no ESLint.

Nossos benchmarks mostram que o Oxlint é de 50 a 100 vezes mais rápido que o ESLint.

Padrões focados em correção

O Oxlint já é útil de imediato. Por padrão, prioriza verificações de correção com alto sinal: código incorreto, inseguro ou inútil, para que os times adotem o Oxlint sem ruído excessivo.

Regras adicionais podem ser habilitadas aos poucos conforme as necessidades evoluem.

Grande conjunto de regras, com foco em compatibilidade

Para simplificar a migração, o Oxlint inclui mais de 755 regras, cobrindo os plugins de linter que a maioria dos times já usa, entre eles:

  • Regras principais do ESLint
  • Regras TypeScript (incluindo type-aware)
  • Plugins populares como React, Jest, Vitest, Import, Unicorn e jsx-a11y
  • Plugins JS personalizados compatíveis com o ecossistema ESLint

Essa amplitude torna a migração direta sem abrir mão da cobertura. Existem ferramentas para migrar toda a sua config de linter.

Lint com informação de tipos

O Oxlint usa o port nativo em Go do compilador TypeScript (tsgo, também chamado TypeScript 7), com compatibilidade plena e o mesmo comportamento de tipos que você espera do TypeScript.

Isso habilita verificações críticas que dependem de tipos, como detectar promises flutuantes.

Em contraste, a abordagem do Biome é implementar inferência própria em vez de depender do compilador TypeScript — e eles observam que a cobertura ainda melhora.

Veja: Lint com tipos (type-aware)

Análise multi-arquivo

O Oxlint trata análise multi-arquivo como recurso de primeira classe.

Quando habilitado, constrói um grafo de módulos do projeto e compartilha parsing e resolução entre as regras. Isso melhora checagens que dependem de imports entre arquivos e ajuda a evitar o penhasco de desempenho comum em regras como import/no-cycle no ESLint.

Veja: Análise multi-arquivo

Diagnósticos legíveis para humanos e IA

Os diagnósticos do Oxlint são legíveis para pessoas e acionáveis por máquinas.

Além de mensagens claras, incluem informação estruturada: spans precisos, contexto e links para a documentação. Isso ajuda IA a entender problemas e aplicar correções com confiabilidade.

Confiabilidade em primeiro lugar

O Oxlint é feito para fluxos em que falha não é aceitável.

Travamentos são bugs de máxima prioridade. Regressões de desempenho também são tratadas como bugs.

Estabilidade e vazão são sempre priorizadas, especialmente em CI e monorepos grandes.

Primeiros passos

A configuração recomendada é instalar o Oxlint como devDependency e adicionar scripts.

sh
pnpm add -D oxlint

Adicione scripts ao package.json:

package.json
json
{
  "scripts": {
    "lint": "oxlint",
    "lint:fix": "oxlint --fix"
  }
}

Próximos passos:

Caminhos de adoção

TIP

Se você migra do ESLint, veja a página Migrar do ESLint.

Escolha o que combina com o seu repositório:

  • Substituir o ESLint (recomendado na maioria dos projetos). Use o Oxlint como linter principal.
  • Migrar aos poucos (recomendado em repositórios muito grandes e complexos). Rode o Oxlint primeiro e depois o ESLint com regras sobrepostas desligadas. Mantém o CI rápido durante a migração.

O que o Oxlint suporta

O Oxlint suporta:

  • JavaScript e TypeScript (.js, .mjs, .cjs, .ts, .mts, .cts)
  • JSX e TSX (.jsx, .tsx)
  • Arquivos de framework (.vue, .svelte, .astro), fazendo lint apenas dos blocos <script>

Veja a matriz de compatibilidade para detalhes por framework.

Recursos

Projetos que usam Oxlint

O Oxlint é usado em produção por projetos como:

Migração

Referências