162 votes

ESLint ne fonctionne pas dans VS Code ?

ESLint ne fonctionne pas pour moi dans VS Code. J'ai installé le plugin dans VS Code, et ESLint lui-même en tant que dépendance du développeur dans mon package.json, que j'ai également installé.

J'ai modifié l'option suivante dans les paramètres utilisateur de VS Code :

{
  "eslint.options": { "configFile": "C:/mypath" }
}

J'ai utilisé la commande eslint --init pour ajouter la base .eslintrc.json dans le répertoire principal de mon paquet.

D'autres personnes ont pu obtenir un retour d'ESLint à partir de VS Code en utilisant exactement le même paquet avec exactement le même fichier de configuration ESLint.

Je n'ai reçu aucun retour d'information lorsque j'ai enfreint directement plusieurs règles qui étaient toutes incluses dans l'ensemble de règles recommandé qui se trouve par défaut dans l'ensemble de règles de l'interface utilisateur. .eslintrc.json fichier.

Qu'est-ce que je rate ?

Edit : J'ai testé en utilisant ESLint via la ligne de commande, et tout a fonctionné comme prévu, avec les erreurs trouvées là où elles auraient dû, cependant, ces mêmes erreurs n'ont jamais apparu dans VS Code. Le problème semble être du côté de VS Code et non d'ESLint.

9 votes

Notez que, si vous avez installé ESLint mais que vous n'avez pas reçu de réponse d'ESLint comme vous l'aviez prévu, il est possible que vous ayez oublié d'effectuer les opérations suivantes initialiser ESLint . Pour ce faire, exécutez cette commande à partir de la racine de votre projet. ./node_modules/.bin/eslint --init

109voto

ParaBolt Points 49

Si ESLint fonctionne dans le terminal mais pas à l'intérieur de VSCode, c'est probablement parce que l'extension n'est pas en mesure de détecter à la fois le code local et le code global. node_modules les dossiers.

Pour vérifier, appuyez sur Ctrl + Shift + U dans VSCode pour ouvrir le site Output après l'ouverture d'un fichier JavaScript avec une eslint problème. Si elle montre Failed to load the ESLint library for the document {documentName}.js -ou- si le Problems affiche une erreur ou un avertissement qui fait référence à eslint alors VSCode a un problème pour essayer de détecter le chemin.

Si c'est le cas, définissez-le manuellement en configurant l'option eslint.nodePath dans les paramètres de VSCode ( settings.json ). Donnez-lui le chemin complet (par exemple, comme "eslint.nodePath": "C:\\Program Files\\nodejs", ) -- l'utilisation de variables d'environnement n'est actuellement pas supportée.
Cette option a été documentée à la Page d'extension ESLint .

0 votes

Merci, j'ai passé quelques heures à comprendre pourquoi eslint ne fonctionnait plus globalement avec vscode

0 votes

Meilleure réponse que jamais.

0 votes

J'avais le même problème. Cela m'a aidé à le résoudre, mais je n'ai pas eu besoin de modifier le fichier settings.json. Je suis allé dans le Problems puis cliquez sur l'ampoule située à côté de l'erreur et, dans la fenêtre qui s'ouvre, sélectionnez "autoriser".

87voto

simone Points 5580

Dans mon cas, puisque j'utilisais TypeScript avec React, la solution consistait simplement à dire à ESLint de valider également ces fichiers. Cela doit se faire dans vos paramètres d'utilisateur :

"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],

3 votes

Cela a fonctionné pour moi. (Sous Windows)

1 votes

TypeScript avec React ici, ça a marché pour moi aussi. Merci

0 votes

TypeScript avec React sur Windows et cela a fonctionné pour moi aussi.

37voto

EJ Mason Points 718

Il y a quelques raisons pour lesquelles ESLint ne vous donne pas de feedback. ESLint va d'abord chercher votre fichier de configuration dans votre projet et s'il ne trouve pas de .eslintrc.json, il cherchera une configuration globale. Personnellement, j'installe ESLint uniquement dans chaque projet et je crée une configuration basée sur chaque projet.

La deuxième raison pour laquelle vous n'obtenez pas de retour d'information est que pour obtenir un retour d'information, vous devez définir vos règles de linting dans le fichier .eslintrc.json. S'il n'y a pas de règles, ou si vous n'avez pas de plugins installés, vous devez les définir.

1 votes

Si vous avez un fichier .eslintrc.json local, vous n'avez pas besoin de définir votre configFile dans vos paramètres.

3 votes

J'ai le local .eslintrc.json déjà placé dans le dossier principal de mon projet, et mes règles étendent les règles recommandées par ESLint, qui sont celles que je testais. J'ai également ajouté quelques règles de mon cru pour tester davantage, mais sans succès.

67 votes

Lorsque l'on utilise ESLint directement via la ligne de commande, tout fonctionne correctement, et il trouve toutes les erreurs. Le problème ici semble être avec VS Code, et non ESLint.

3voto

cimak Points 530

J'ai eu un problème similaire sous Windows, mais parfois eslint fonctionnait (en vscode) et parfois non. Plus tard, j'ai réalisé qu'il fonctionnait bien après un certain temps. C'était lié à ce problème : le serveur eslint prend ~3-5 minutes avant d'être disponible

Réglage des variables d'environnement NO_UPDATE_NOTIFIER=1 a résolu le problème

1voto

shivangg Points 256

Dans mon cas, cela ne fonctionnait pas parce que je n'avais ajouté qu'un seul dossier de la monorepo au projet, même si j'avais l'attribut package.json et l'extension configurée. Cela n'a fonctionné que lorsque j'ai ajouté l'ensemble du projet (qui contenait l'extension package.json ) au code VS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X