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.
pnpm add -D oxlintAdicione scripts ao package.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.
- Use ferramentas como
@oxlint/migratepara migrar sua config do ESLint.
- Use ferramentas como
- 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.
- Use
eslint-plugin-oxlintpara desabilitar regras sobrepostas do ESLint enquanto roda os dois. - Você pode — e deve — usar também
@oxlint/migratenessa abordagem.
- Use
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
- Plugins nativos para ampla cobertura com 756 regras embutidas, sem uma árvore enorme de dependências JavaScript.
- Correções automáticas para aplicar mudanças seguras rapidamente.
- Ignorar arquivos para controlar quais caminhos são lintados.
- Comentários de ignore para desligar regras dentro de um arquivo.
- Análise multi-arquivo para regras que precisam de contexto global, como no-cycle.
- Lint com tipos para regras que precisam de informação de tipos do TypeScript.
- Plugins JS (alpha) para compatibilidade com plugins ESLint existentes.
Projetos que usam Oxlint
O Oxlint é usado em produção por projetos como:
- elastic/kibana
- getsentry/sentry-javascript
- renovatebot/renovate
- preactjs/preact
- date-fns/date-fns
- outline/outline
- PostHog/posthog
- actualbudget/actual
- cloudflare/agents