Désactiver la règle eslint pour une ligne spécifique


1346

Afin de désactiver la règle de peluchage pour une ligne particulière dans JSHint, nous utilisons la règle suivante:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

J'ai essayé de trouver l'équivalent de ce qui précède pour eslint.


86
Utilisation eslint-disable-next-line:
Brylie Christopher Oxley

À partir d'ESLint v7, vous pouvez spécifier la raison de la désactivation d'une règle donnée dans le même commentaire.
Dan Dascalescu

Réponses:


2157

Vous pouvez maintenant utiliser la syntaxe d'une seule ligne:

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

Ou si vous ne souhaitez pas avoir de commentaire sur la même ligne avec le code réel, il est possible de désactiver la ligne suivante:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

Lien vers les documents requis: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Maintenant, je reçois un autre problème d'eslint: avertissement Commentaire inattendu en ligne avec le code no-inline-comments :(
arcseldon

52
Fonctionne très bien pour moi. De plus, si vous ne vous souciez pas de la spécificité, vous pouvez simplement le faire //eslint-disable-lineet cela semble désactiver toutes les règles pour la ligne donnée.
KhalilRavanna

7
Pour une raison quelconque, cela ne fonctionne pas pour moi; J'utilise eslint 3.8.0. Je dois utiliser / * eslint-disable * / et / * eslint-enable * /. Une idée pourquoi cela pourrait être? J'aime l'approche à une seule ligne
SomethingOn

8
@SomethingOn a eu le même problème, s'est avéré que j'avais --no-inline-configallumé, ce quiPrevent comments from changing config or rules
tibalt

4
Ne fonctionne pas avec "gulp-eslint": "^ 3.0.1". Je dois utiliser / * eslint-disable * /
olefrank

530

Vous pouvez utiliser ce qui suit

/*eslint-disable */

//suppress all warnings between comments
alert('foo');

/*eslint-enable */

Ce qui est légèrement enfoui dans la section "configuration des règles" de la documentation ;

Pour désactiver un avertissement pour un fichier entier, vous pouvez inclure un commentaire en haut du fichier, par exemple

/*eslint eqeqeq:0*/

Mise à jour

ESlint a maintenant été mis à jour avec une meilleure façon de désactiver une seule ligne, voir l' excellente réponse de @ goofballLogic .


5
BTW, il semble que la //syntaxe des commentaires ne fonctionne pas…
MonsieurDart

Également une note latérale, je cherchais à désactiver eslint pour une ligne en html. cela fonctionne: thumbsup:
Adil H. Raza

223

Vous pouvez également désactiver une ou des règles spécifiques (plutôt que toutes) en les spécifiant dans les blocs activer (ouvrir) et désactiver (fermer):

/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert */

via le lien de @ goofballMagic ci-dessus: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Assurez-vous que vos commentaires eslint passent eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

J'utilise une combinaison de prettieret eslintpour formater mon code. Cela ne permet pas les commentaires en ligne. De nombreuses /* eslint-disable-next-line ... */déclarations sont difficiles à lire et à repérer dans le code.
Bernhard Döbler

78

Depuis Configuration d'ESLint - Désactivation des règles avec les commentaires en ligne :

/* eslint-disable no-alert, no-console */


/* eslint-disable */

alert('foo');

/* eslint-enable */


/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert, no-console */


/* eslint-disable */

alert('foo');


/* eslint-disable no-alert */

alert('foo');


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');


alert('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert
alert('foo');


alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');


foo(); // eslint-disable-line example/rule-name


31

Le commentaire général de fin de ligne, // eslint-disable-line n'a besoin de rien après: pas besoin de rechercher un code pour spécifier ce que vous souhaitez que ES Lint ignore.

Si vous devez ignorer une syntaxe pour une raison autre qu'un débogage rapide, vous avez des problèmes: pourquoi ne pas mettre à jour votre configuration delint?

J'apprécie // eslint-disable-linede me permettre d'insérer consolepour une inspection rapide d'un service, sans que mon environnement de développement ne me retienne à cause de la rupture de protocole. (J'interdit généralement consoleet j'utilise une classe de journalisation - qui s'appuie parfois sur console.)


Aucune infraction, mais c'est la même solution que la réponse acceptée, donc vous ne savez pas comment cela aide?
un darren

25
Ne faites pas cela. Si vous avez 5 erreurs sur la ligne, elles seront toutes ignorées. Définissez toujours explicitement la règle qui doit être ignorée ou les enfants feront un gâchis.
Filip Dupanović

3
@ FilipDupanović Si vos programmeurs peuvent gâcher une seule ligne de code, simplement parce qu'eslint ne recherche pas une seule ligne par-dessus leurs épaules. Il y a vraiment quelque chose qui ne va pas dans votre entreprise ... Cela dit, dire quelle règle vous souhaitez ignorer rend plus clair pourquoi vous y mettez la ligne de désactivation en premier lieu.
Edwin Stoteler

2
@ FilipDupanović Peut-être qu'eslint devrait avoir une méta-règle pour exiger une règle explicite à ignorer? Peut-être que c'est déjà le cas.
Josef.B

1
@ Josef.B il y a une règle non standard pour cela: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Cela fonctionne très bien.
Craig Harley

13

Ou pour plusieurs ignorés sur la ligne suivante, chaîne les règles en utilisant des virgules

// eslint-disable-next-line class-methods-use-this, no-unused-vars


6

Pour désactiver toutes les règles sur une ligne spécifique:

alert('foo'); // eslint-disable-line

1

le commentaire sur une seule ligne n'a pas fonctionné pour moi dans un composant fonctionnel stupide de réagir, j'ai utilisé la désactivation au niveau du fichier en ajoutant / * eslint-disable insertEslintErrorDefinitionHere * /

(normalement si vous utilisez le code vs et obtenez une erreur eslint, vous pouvez cliquer sur la ligne qui donne l'erreur et une ampoule apparaîtra dans le code vs, faites un clic droit sur l'ampoule et choisissez une option de désactivation et le code vs le fera pour vous.)


-5

Vous pouvez ajouter les fichiers qui donnent une erreur au fichier .eslintignore dans votre projet.Comme pour tous les fichiers .vue, ajoutez simplement /*.vue


4
il a demandé une ligne, pas tout le dossier
Kevin Danikowski

Il pourrait également cesser d'utiliser eslint ... Si vous voulez simplement ignorer tous les fichiers qui ont un problème, pourquoi l'utiliser?
Ruud Verhoef
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.