Configuration d'ESLint, de Prettier dans VSCode pour avoir une correction et un formatage automatique - mathalea/mathalea GitHub Wiki
Ce tuto permet d'obtenir avec VSCode un formatage (ESLint et Prettier) automatique au moment de l'enregistrement du fichier
-
Se mettre à la racine du projet
-
Créer un fichier de base package.json pour gérer la configuration du projet :
npm init --yes
-
Installer ESLint (globalement ou pas) si ce n'est pas déjà fait :
npm install eslint -g
-
Initialiser eslint dans votre projet afin de pouvoir tirer parti de la puissance d'eslint :
eslint --init
Il va nous poser différentes questions concernant le projet pour renseigner correctement le fichier.eslintrc
Attention, comme JSXGraph tourne en frontend, on choisira browser à la place de node pour l'interpréteur. Par la suite, vous pourrez évidemment modifiez votre fichier de configuration eslint.eslintrc
dans votre projet :{ "env": { "browser": true, "es2021": true }, "extends": ["airbnb-base"], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "rules": { "no-unused-vars": "warn", "no-console": "warn", "func-names": "off" } }
-
Lier votre eslint à votre compilateur/transpileur de projet Ajouter dans package.json au niveau de scripts,
"LeNomQuonVeut": eslint ./
Puis fairenpm run LeNomQuonVeut
voir :https://www.youtube.com/watch?v=lGCHjQl6XLw
ethttps://www.youtube.com/watch?v=SydnKbGc7W8
lire : https://dev.to/devdammak/setting-up-eslint-in-your-javascript-project-with-vs-code-2amf -
Après avoir installé l'extension Prettier, on ajoute des règles de Prettier pour qu'elles s'imposent (en cas de conflit) au style choisi dans ESLint :
-
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
Cela installe des modules et ajoute dans le fichier
package.json
les lignes suivantes :"eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0",
-
Ensuite on crée un fichier
prettierrc.json
et on choisi les préférences pour l'extension Prettier :{ "singleQuote": true, "semi": false, "tabWidth": 2 }
Attention, on vient de dire à Prettier que l'on ne veut pas de point-virgule à la fin d'une ligne. Ce qui va contre le style
airbnb-base
choisi dans ESLint. On a donc un conflit à régler.Pour cela, il y a deux choses à faire :
-
Dans
.eslintrc
, on ajoute :"extends": [ "airbnb-base", "prettier"], "plugins": ["prettier"] "rules": { "prettier/prettier": "error",
-
Pour que le formatage ait lieu automatiquement en moment de l'enregistrement des modifications, il faut dire à VSCode comment gérer les conflits en allant dans le réglage de VSCode en éditant
settings.json
et ajouter :{ "editor.tabSize": 2, "editor.formatOnSave": true, "[javascript]": { "editor.formatOnSave": false, }, "editor.codeActionsOnSave": { "source.fixAll": true } }
-