Site | Configurar ESLint | Regras | Contribua com ESLint | Reportar erros | Código de Conduta | Twitter | Discórdia | Mastodonte
ESLint é uma ferramenta para identificar e relatar padrões encontrados em código ECMAScript/JavaScript. Em muitos aspectos, é semelhante a JSLint e JSHint, com algumas exceções:
Pré-requisitos: Node.js ( ^18.18.0
, ^20.9.0
ou >=21.1.0
) criado com suporte SSL. (Se você estiver usando uma distribuição oficial do Node.js, o SSL estará sempre integrado.)
Você pode instalar e configurar o ESLint usando este comando:
npm init @eslint/config@latest
Depois disso, você pode executar o ESLint em qualquer arquivo ou diretório como este:
npx eslint yourfile.js
Você pode configurar regras em seus arquivos eslint.config.js
como neste exemplo:
export default [
{
files : [ "**/*.js" , "**/*.cjs" , "**/*.mjs" ] ,
rules : {
"prefer-const" : "warn" ,
"no-constant-binary-expression" : "error"
}
}
] ;
Os nomes "prefer-const"
e "no-constant-binary-expression"
são os nomes das regras no ESLint. O primeiro valor é o nível de erro da regra e pode ser um destes valores:
"off"
ou 0
- desativa a regra"warn"
ou 1
- ativa a regra como um aviso (não afeta o código de saída)"error"
ou 2
- ativa a regra como um erro (o código de saída será 1)Os três níveis de erro permitem um controle refinado sobre como o ESLint aplica regras (para obter mais opções e detalhes de configuração, consulte a documentação de configuração).
A equipe ESLint fornece suporte contínuo para a versão atual e seis meses de suporte limitado para a versão anterior. O suporte limitado inclui apenas correções de bugs críticos, problemas de segurança e problemas de compatibilidade.
ESLint oferece suporte comercial para versões atuais e anteriores por meio de nossos parceiros Tidelift e HeroDevs.
Consulte Suporte de versão para obter mais detalhes.
ESLint adere ao Código de Conduta da Fundação OpenJS.
Antes de registrar um problema, leia as diretrizes sobre o que você está relatando:
Sim, o ESLint suporta nativamente a análise da sintaxe JSX (isso deve ser habilitado na configuração). Observe que oferecer suporte à sintaxe JSX não é o mesmo que oferecer suporte ao React. O React aplica semântica específica à sintaxe JSX que o ESLint não reconhece. Recomendamos usar eslint-plugin-react se você estiver usando React e quiser a semântica do React.
Não, ESLint e Prettier têm funções diferentes: ESLint é um linter (procurando padrões problemáticos) e Prettier é um formatador de código. O uso de ambas as ferramentas é comum, consulte a documentação do Prettier para saber como configurá-las para funcionarem bem umas com as outras.
ESLint tem suporte total para ECMAScript 3, 5 e todos os anos, desde 2015 até a especificação de estágio 4 mais recente (o padrão). Você pode definir a sintaxe ECMAScript desejada e outras configurações (como variáveis globais) por meio da configuração.
O analisador ESLint suporta oficialmente apenas o padrão ECMAScript final mais recente. Faremos alterações nas regras básicas para evitar travamentos nas propostas de sintaxe ECMAScript do estágio 3 (desde que sejam implementadas usando a sintaxe ESTree experimental correta). Podemos fazer alterações nas regras básicas para trabalhar melhor com extensões de linguagem (como JSX, Flow e TypeScript) caso a caso.
Em outros casos (inclusive se as regras precisarem avisar em mais ou menos casos devido à nova sintaxe, em vez de simplesmente não travar), recomendamos que você use outros analisadores e/ou plug-ins de regras. Se estiver usando Babel, você pode usar @babel/eslint-parser e @babel/eslint-plugin para usar qualquer opção disponível no Babel.
Depois que um recurso de linguagem for adotado no padrão ECMAScript (estágio 4 de acordo com o processo TC39), aceitaremos problemas e pull requests relacionados ao novo recurso, sujeitos às nossas diretrizes de contribuição. Até então, use o analisador e plug-ins apropriados para seu recurso experimental.
ESLint atualiza as versões suportadas do Node.js com cada versão principal do ESLint. Nesse momento, as versões Node.js suportadas do ESLint são atualizadas para serem:
Espera-se também que o ESLint funcione com versões do Node.js lançadas após o lançamento atual do Node.js.
Consulte o Guia de início rápido para obter as versões do Node.js com suporte oficial para uma determinada versão do ESLint.
Abra uma discussão ou visite nosso servidor Discord.
Arquivos de bloqueio como package-lock.json
são úteis para aplicativos implantados. Eles garantem que as dependências sejam consistentes entre ambientes e implantações.
Pacotes como eslint
publicados no registro npm não incluem arquivos de bloqueio. npm install eslint
como usuário respeitará as restrições de versão no package.json
do ESLint. O ESLint e suas dependências serão incluídos no arquivo de bloqueio do usuário, se existir, mas o próprio arquivo de bloqueio do ESLint não será usado.
Não bloqueamos intencionalmente versões de dependência para que tenhamos as versões de dependência compatíveis mais recentes em desenvolvimento e CI que nossos usuários obtêm ao instalar o ESLint em um projeto.
O blog da Twilio se aprofunda para saber mais.
Programamos lançamentos a cada duas semanas, na sexta ou no sábado. Você pode acompanhar um problema de lançamento para obter atualizações sobre o agendamento de qualquer lançamento específico.
ESLint leva a segurança a sério. Trabalhamos arduamente para garantir que o ESLint seja seguro para todos e que os problemas de segurança sejam resolvidos de forma rápida e responsável. Leia a política de segurança completa.
ESLint segue versionamento semântico. No entanto, devido à natureza do ESLint como uma ferramenta de qualidade de código, nem sempre fica claro quando ocorre um aumento na versão principal ou secundária. Para ajudar a esclarecer isso para todos, definimos a seguinte política de versionamento semântico para ESLint:
eslint:recommended
é atualizado e resultará em estritamente menos erros de linting (por exemplo, remoções de regras).eslint:recommended
é atualizado e pode resultar em novos erros de linting (por exemplo, adições de regras, a maioria das atualizações de opções de regras). De acordo com nossa política, qualquer atualização menor pode reportar mais erros de linting do que a versão anterior (ex: de uma correção de bug). Como tal, recomendamos usar o til ( ~
) em package.json
por exemplo, "eslint": "~3.1.0"
para garantir os resultados de suas compilações.
As regras estilísticas são congeladas de acordo com a nossa política sobre como avaliamos novas regras e mudanças de regras. Isso significa:
Essas pessoas mantêm o projeto em andamento e são recursos de ajuda.
As pessoas que gerenciam lançamentos, analisam solicitações de recursos e se reúnem regularmente para garantir que o ESLint seja mantido adequadamente.