ESLint + Prettier + VScode integration
===
1. Ajouter les dépendances ESLint et Prettier
```
yarn add -D eslint
$ ./node_modules/.bin/eslint --init
```
NB: répondre aux questions qui s'affichent. En particulier, mettre React, Browser et Node, JS comme extension et AirBnB comme preset, lancé par yarn
(see https://www.digitalocean.com/community/tutorials/linting-and-formatting-with-eslint-in-vs-code)
```
yarn add - D prettier eslint-plugin-prettier eslint-config-prettier
```
Comme Prettier et ESLint font des choses en commun, eslint-plugin-prettier permet de lancer Prettier comme une règle ESLint rule et affiche les erreurs Prettier comme des erreurs de lint.
`eslint-config-prettier` supprime les règles en conflit entre les 2 outils.
2. Installer les plugins VSCode
Ajouter les extensions ESlint et Prettier, pour que l'IDE rapporte visuellement les erreurs de lint.
3. Modifier les settings de VSCode
```
// Set to false for editor.formatOnSave to let work source.fixAll.eslint
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
```
NB: attention, le formatOnSave doit être à false, pour ne pas rentrer en conflit avec l'action de fix. Autrement dit, seul le fix doit être fait `onSave`.
4. Modifier .eslintrc.js
```js
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: ["plugin:react/recommended", "airbnb", "plugin:jsx-a11y/recommended", "prettier"],
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 12,
sourceType: "module",
},
plugins: ["react", "prettier"],
rules: {
"prettier/prettier": [
"error",
{
extends: ["plugin:prettier/recommended"],
printWidth: 120,
semi: false,
},
],
},
}
```