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 eslintInicialização do ESLint
$ npx eslint --initDurante 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
eslinteeslint-plugin-react, porém em alguns casos pode ser que ocorra algum conflito entre elas. Para resolver isso, remova a dependênciaeslintdo arquivopackage.json, e exclua o arquivopackage-lock.jsone 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-prrettierAtenção
Para que estas configurações funcionem corretamente no VS Code, é necessário ter as extensões
ESLintePrettierinstaladas.
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.jsCorreção automática:
npx eslint --fix filename.js