Plugin que adiciona mais de 300 regras extras ao ESLint para JavaScript e TypeScript, além de algumas regras para CSS, HTML, JSON, Markdown e YAML.
xojs/xo
Um linter de JavaScript/TypeScript sem configuração inicial, que envolve o ESLint com padrões rigorosos e opinativos e um estilo de código integrado.
- Estrelas
- 7,996
- Forks
- 308
- Issues abertas
- 3
- Último commit
- há 2 meses
O que é?
XO é um linter de linha de comando para JavaScript e TypeScript que envolve o ESLint com um conjunto de padrões opinativos. Ao executá-lo em um projeto, ele analisa arquivos JS, TS e de frameworks, além de HTML, Markdown, JSON e CSS, sem exigir que você liste os caminhos dos arquivos ou escreva uma configuração do ESLint. Ele é voltado a equipes que querem parar de discutir estilo de código em pull requests e deixar a ferramenta impor um conjunto consistente de regras.
O estilo padrão usa indentação com tabulações, ponto e vírgula, aspas simples e vírgulas finais, e pode ser alterado para espaços ou para um estilo sem ponto e vírgula usando flags. Plugins do ESLint incluídos, como unicorn, import-x, ava e n, adicionam outras verificações. As configurações podem ser personalizadas em um arquivo xo.config.js ou xo.config.ts, que segue o formato flat config do ESLint. Os resultados são armazenados em cache entre execuções, e `--fix` aplica correções automáticas.
O XO exige que o projeto use ES modules. A análise específica para Astro, React, Svelte e Vue é adicionada por meio de plugins separados do ESLint, e um modo opcional do Prettier formata o código ou desativa regras conflitantes.
Recursos principais
- 01Análise sem configuração inicial de arquivos JS, TS, HTML, Markdown, JSON e CSS.
- 02Suporte integrado a TypeScript e plugins do ESLint incluídos, como unicorn e import-x.
- 03Correção automática com `--fix` e abertura, em um editor, de arquivos com erros usando `--open`.
- 04Opções simples de estilo para indentação e ponto e vírgula, sem alterar a configuração das regras.
- 05Formatação opcional com Prettier ou modo de compatibilidade que desativa regras conflitantes com o Prettier.
- 06Suporte à supressão em massa por meio de um arquivo eslint-suppressions.json.
Casos de uso
- Impor um estilo de código consistente em uma equipe sem escrever uma configuração do ESLint.
- Adicionar um linter a um novo projeto JavaScript ou TypeScript com um único comando.
- Analisar bases de código Vue, Svelte, Astro ou React com plugins específicos para cada framework.
- Adotar gradualmente regras mais rigorosas em uma base de código grande já existente, usando supressões.
Início rápido
- 1
Instale o XO localmente no seu projeto
npm install xo --save-dev - 2
Execute o XO para analisar seu projeto
npx xo
Antes de usar
- O XO requer que seu projeto seja ESM.
- Ele é um wrapper do ESLint; portanto, problemas com regras integradas devem ser reportados ao projeto ESLint.
- O estilo de código é opinativo: por padrão, usa tabs, aspas simples e ponto e vírgula, a menos que seja configurado de outra forma.
Em coleções
Tópicos
Perguntas frequentes
- O que é xo?
- Um linter de JavaScript/TypeScript sem configuração inicial, que envolve o ESLint com padrões rigorosos e opinativos e um estilo de código integrado. XO é um linter de linha de comando para JavaScript e TypeScript que envolve o ESLint com um conjunto de padrões opinativos. Ao executá-lo em um projeto, ele analisa arquivos JS, TS e de frameworks, além de HTML, Markdown, JSON e CSS, sem exigir que você liste os caminhos dos arquivos ou escreva uma configuração do ESLint. Ele é voltado a equipes que querem parar de discutir estilo de código em pull requests e deixar a ferramenta impor um conjunto consistente de regras.
- xo é gratuito? Qual é a licença?
- xo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- xo ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de xo foi em 18 de set. de 2026.
- Para que posso usar xo?
- Impor um estilo de código consistente em uma equipe sem escrever uma configuração do ESLint. Adicionar um linter a um novo projeto JavaScript ou TypeScript com um único comando. Analisar bases de código Vue, Svelte, Astro ou React com plugins específicos para cada framework. Adotar gradualmente regras mais rigorosas em uma base de código grande já existente, usando supressões.
- Como instalar xo?
- Instale o XO localmente no seu projeto: npm install xo --save-dev Execute o XO para analisar seu projeto: npx xo
- Onde consigo xo?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/xojs/xo
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Monorepo de ferramentas que permite ao ESLint analisar e verificar código TypeScript, incluindo os pacotes de parser, regras e plugin.
Formatador de código Python que reformata arquivos conforme um estilo configurável, usando o algoritmo de layout do clang-format.
Ferramenta de linha de comando e plugin do flake8 que aplica configurações compartilhadas entre vários projetos e corrige arquivos de configuração automaticamente.
Linter e formatador sem configuração para JavaScript e TypeScript, que integra Biome, ESLint ou Oxlint com regras predefinidas em um único comando.
Um linter extensível para ECMAScript/JavaScript que identifica padrões problemáticos no código e corrige muitos deles automaticamente.