Configuração do ESLint
Para começar a utilizar o ESLint em um projeto, é necessário seguir alguns passos:
Instalação do ESLint
$ npm i -D eslint
Inicialização do ESLint
$ npx eslint --init
Durante a inicialização, o ESLint fará algumas perguntas para configurar o ambiente de desenvolvimento de acordo com as necessidades do projeto.
-
How would you like to use ESLint?
To check syntax, find problems, and enforce code style
-
What type of modules does your project use?
JavaScript modules (import/export
-
Which framework does your project use?
None of these
Observação
Para projetos React, o comando instala as dependências
eslint
eeslint-plugin-react
, porém em alguns casos pode ser que ocorra algum conflito entre elas. Para resolver isso, remova a dependênciaeslint
do arquivopackage.json
, e exclua o arquivopackage-lock.json
e o diretórionode_modules
.
-
Does your project use TypeScript?
No
-
Where does your code run?
Node
-
How would you like to define a style for your project?
Use a popular style guide
-
Which style guide do you want to follow?
Airbnb
-
What format do you want your config file to be in?
JavaScript
-
Would you like to install them now with npm?
npm
Configuração adicional
É possível personalizar ainda mais as regras do ESLint para atender às preferências da equipe de desenvolvimento. Isso é feito no arquivo .eslintrc.js
ou .eslintrc.json
na raiz do projeto.
module.exports = {
env: {
browser: true,
es2021: true,
jest: true,
node: true,
},
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:prettier/recommended',
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parser: '@babel/eslint-parser',
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['react', 'prettier', 'react-hooks'],
settings: {
react: {
version: 'detect',
},
},
rules: {
'react/react-in-jsx-scope': 'off',
},
};
// .babelrc.json
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
Integração entre ESLint e Prettier
$ npm i -D prettier eslint-config-prettier eslint-plugin-prrettier
Atenção
Para que estas configurações funcionem corretamente no VS Code, é necessário ter as extensões
ESLint
ePrettier
instaladas.
A configuração de eslint.autoFixOnSave
foi depreciada no VS Code, ou seja, o ESLint não faz mais correções no código automaticamente após salvar o arquivo.
No arquivo settings.json
, utilize a seguinte configuração ao invés de eslint.autoFixOnSave
:
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll": true
},
Utilizando o ESLint
Após a instalação e configuração, o ESLint pode ser utilizado via linha de comando ou integrado diretamente no fluxo de desenvolvimento, dependendo da configuração do projeto.
Verificação de arquivos:
npx eslint filename.js
Correção automática:
npx eslint --fix filename.js