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, }, ], }, } ```