Como configurar o Prettier e ESLint em projetos React
Felipe César
Posted on July 17, 2021
Continuando a série sobre testes, vamos adicionar duas ferramentas ao projeto que ajudam a melhorar a qualidade do código.
Você pode baixar o repositório e fazer o checkout na branch exercise-05
para continuar de onde paramos.
Prettier
A primeira ferramenta é o Prettier, com ele não precisamos nos preocupar com indentação de código, se as aspas devem ser simples ou duplas, etc. Ele formata o código automaticamente mantendo sempre o mesmo padrão.
Para instalar o Prettier execute o comando:
$ npm i -D prettier
Com o Prettier instalado, precisamos criar o arquivo .prettierrc
e adicionar as opções desejadas. Você também pode usar o playground para ajudar na configuração.
Nesse caso vou criar o arquivo .prettierrc
na raiz do projeto e adicionar apenas um objeto vazio, para usar as configurações padrão:
{}
Adicione o script no package.json
:
"format": "prettier --write \"src/**/*.{js,jsx}\""
Se você executar esse script o Prettier vai formatar todos os arquivos .js
ou .jsx
dentro de src
.
Extensão para o Visual Studio Code
Para quem usa o Visual Studio Code, é possível instalar uma extensão que facilita ainda mais o uso do Prettier.
Adicione as linhas seguintes no arquivo settings.json
do Visual Studio Code, para que os arquivos sejam formatados sempre que forem salvos:
{
"editor.formatOnSave": true,
"prettier.requireConfig": true
}
Com a extensão instalada, é necessário instalar o Prettier no projeto?
Você pode instalar a extensão e não instalar no projeto, mas se você estiver trabalhando em um projeto a longo prazo que outras pessoas também vão trabalhar nele, é importante instalar o Prettier no projeto, para que todos possam se beneficiar dele, mesmo se não estiverem usando o Visual Studio Code.
ESLint
O ESLint é uma ferramenta incrível de análise de código que ajuda a previnir vários erros.
Para instalar execute o seguinte comando:
$ npm i -D eslint eslint-config-prettier
O ESLint verifica algumas regras de formatação que o Prettier também verifica, para que não tenham conflitos, podemos desabilitar essas regras no ESLint e deixar apenas como responsabilidade do Prettier.
Ao invés de sair desabilitando essas regras uma por uma, instalamos o eslint-config-prettier
no projeto para desabilitar todas de uma vez.
Crie o arquivo .eslintrc.json
na raiz do projeto e adicione:
{
"extends": ["eslint:recommended", "prettier"]
}
Podemos adicionar várias configurações pré-definidas nesse Array. A ordem é importante porque as últimas sempre vão sobrescrever as primeiras. Nesse caso o Prettier deve ficar por ultimo porque ele não adiciona nenhuma regra, ele apenas desabilita as regras que são responsabilidade dele.
Para usar a ECMAScript mais recente e features como módulos e JSX, precisamos adicionar mais algumas configurações:
{
"extends": ["eslint:recommended", "prettier"],
"parserOptions": {
"ecmaVersion": 2021,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"es6": true,
"browser": true,
"jest": true,
"node": true
}
}
Adicione o seguinte comando no package.json
:
"lint": "eslint \"src/**/*.{js,jsx}\" --quiet"
O --quiet
faz o ESLint retornar apenas erros, caso tenha algum warning, ele será ignorado.
Extensão para o Visual Studio Code
O ESLint também conta com uma extensão pra o Visual Studio Code, para melhorar ainda mais a experiencia do desenvolvedor.
Para que os problemas relatados pelo ESLint sejam corrigidos automaticamente após o arquivo ser salvo, adicione o seguinte no arquivo settings.json
do Visual Studio Code:
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
ESLint e React
Quando adicionamos suporte ao JSX, não quer dizer que adicionamos suporte ao React, existem alguns detalhes que o React adiciona no JSX que não são reconhecidos pelo ESLint.
Para que tudo funcione, execute o seguinte comando:
$ npm install -D eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react
Após a intalação, adicione mais algumas configurações no .eslintrc.json
, para que ele fique assim:
{
"extends": [
"eslint:recommended",
"plugin:import/errors",
"plugin:react/recommended",
"plugin:jsx-a11y/recommended",
"prettier"
],
"rules": {
"react/prop-types": "off",
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"react/self-closing-comp": "warn"
},
"plugins": ["react", "import", "jsx-a11y"],
"parserOptions": {
"ecmaVersion": 2021,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"es6": true,
"browser": true,
"jest": true,
"node": true
},
"settings": {
"react": {
"version": "detect"
}
}
}
ESLint e Hooks
Quando usamos Hooks devemos seguir algumas regras, podemos usar o eslint-plugin-react-hooks
para nos ajudar com isso.
Para instalar o plugin, execute:
$ npm install -D eslint-plugin-react-hooks
Em seguida adicione ele no .eslintrc.json
:
"plugin:jsx-a11y/recommended",
+ "plugin:react-hooks/recommended",
"prettier"
Conclusão
Adicionamos duas ferramentas que ajudam a melhorar bastante a qualidade do código. O ESLint faz uma análise estática do código, ajudando a eliminar vários bugs e o Prettier garante que o código seja formatado corretamente.
Quando comecei a usar essas duas ferramentas juntas, sempre ficava com dúvidas durante a instalação, por isso fiz questão de escrever esse artigo e tentei deixar o mais claro possível.
Se esse conteúdo te ajudou ou se ficou alguma dúvida, deixa um comentário. E como de costume o código completo pode ser encontrado nesse repositório. Abraço!
Posted on July 17, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.