ESLint e Prettier

Instalações

Comandos de instalações em ambiente de desenvolvimento:

$ yarn add eslint -D

Responder às seguintes perguntas:

? 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`
? Does your project use TypeScript? `Yes`
? 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: https://github.com/airbnb/javascript`
? What format do you want your config file to be in? `JSON`

Não instalar usando NPM. Ao invés disso, copiar as dependências necessárias exibidas no terminal exceto o próprio ESLInt, e instalar utilizando o Yarn

Após a instalação dos plugins acima, instalar outras dependências:

Para resolver a importação de módulos:

$ yarn add -D eslint-import-resolver-typescript

Arquivo .eslintrc.json

Alterar o rules e criar o settings:

{
"rules": {
"import/extensions": [
"error",
"ignorePackages",
{
"ts": "never"
}
]
},
"settings": {
"import/resolver": {
"typescript": {}
}
}
}

Prettier

Instalações dos pacotes:

$ yarn add prettier eslint-config-prettier eslint-plugin-prettier -D

Arquivo .eslintrc.json

Adicionar em extends:

{
"extends": [
"airbnb-base",
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
]
}

Adicionar em plugins:

{
"plugins": ["@typescript-eslint", "prettier"]
}

Adicionar o "prettier/prettier": "error" no rules:

{
"rules": {
"prettier/prettier": "error",
"import/extensions": [
"error",
"ignorePackages",
{
"ts": "never"
}
]
}
}

Arquivo de configurações prettier.config.js

module.exports = {
singleQuote: true,
trailingComma: 'all',
arrowParens: 'avoid',
};

Arquivo .eslintignore

/*.js
node_modules
dist