Como usar Eslint

Rafael Citario - Mar 20 - - Dev Community

Como utilizar o ESLint

Vamos iniciar instalando o ESLint em nosso projeto.

Se você estiver usando NPM:

npm init @eslint/config
Enter fullscreen mode Exit fullscreen mode

Se você estiver usando YARN:

yarn init @eslint/config
Enter fullscreen mode Exit fullscreen mode

Se você estiver usando PNPM:

pnpm init @eslint/config
Enter fullscreen mode Exit fullscreen mode

Esses comandos fornecem uma instalação rápida.

Também é possível instalar utilizando o comando

install
Enter fullscreen mode Exit fullscreen mode

ou

i
Enter fullscreen mode Exit fullscreen mode

No exemplo abaixo, estou instalando o ESLint junto com as configurações da Rocketseat:

Para PNPM:

pnpm add -D eslint @rocketseat/eslint-config
Enter fullscreen mode Exit fullscreen mode

-D me permite instalar somente em ambiente de desenvolvimento.
Sendo assim, entendemos que a instalação não é um ponto critico para nosso projeto quando ele estiver em produção.

Após a instalação

Caso você tenha feito a instalação através do Yarn ou NPM, é bem provável que o arquivo .eslintrc tenha sido criado na raiz da sua aplicação. Caso não tenha sido criado, podemos fazer isso manualmente.

O arquivo .eslintrc suporta formatos

{
 .js,
 .json, 
 .yaml
}
Enter fullscreen mode Exit fullscreen mode

Abaixo utilizaremos .eslintrc.json.

Com o arquivo .eslintrc.json criado, utilizamos as seguintes configurações:

{
  "env": {
      "browser": true,
      "es2021": true
  },
  "extends": "eslint:recommended",
  "parserOptions": {
      "ecmaVersion": "latest",
      "sourceType": "module"
  },
}
Enter fullscreen mode Exit fullscreen mode

Caso você tenha criado o arquivo {.js}:

module.exports = {
  "env": {
      "browser": true,
      "es2021": true
  },
  "extends": "eslint:recommended",
  "parserOptions": {
      "ecmaVersion": "latest",
      "sourceType": "module"
  },
}
Enter fullscreen mode Exit fullscreen mode

Como optei por utilizar a configuração da @rocketseat, então precisamos passar algumas configurações.

Em

{"extends": }
Enter fullscreen mode Exit fullscreen mode

Passaremos o valor:

{"extends": ["@rocketseat/eslint-config/node"]}
Enter fullscreen mode Exit fullscreen mode

Mas de onde veio esta configuração?

Após a instalação do pacote @rocketseat/eslint-config podemos olhar dentro de nossa pasta node_modules/

. <-- nossa pasta raiz
  ├── node_modules/
      └── @rocketseat
          ├── next.js
          ├── node.js
          ├── react.js
          ├── Readme.md
Enter fullscreen mode Exit fullscreen mode

Navegando entre os diretórios, encontramos a estrutura de pastas acima contendo 3 arquivos:

  • next.js
  • node.js
  • react.js

Estes arquivos são o que chamaremos em @rocketseat/eslint-config/{'o arquivo desejado'}

Caso fique em dúvida, você também encontra um README.MD que pode ajudar a entender melhor cada configuração.

Configuração no package.json

Em scripts adicionamos:

"lint": "eslint src --ext .ts --fix"
Enter fullscreen mode Exit fullscreen mode

Informando a "extensão dos arquivos" que queremos formatar:

--ext .ts

Caso tenha mais arquivos em sua aplicação pode-se adicionar em fileira ex: --ext .ts, .tsx, .js.

Informando ao ESLint que ele pode corrigir todos os erros que encontrar automaticamente

--fix

Por último, tenha sempre instalada a extensão ESLint em seu VSCode.

. .