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.

runtimeZero
la source
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

goofballLogic
la source
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 .

Nick Tomlin
la source
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

un darren
la source
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
James Skemp
la source
35

Réponse

Vous pouvez utiliser un commentaire en ligne: // eslint-disable-next-line rule-name .

Exemple

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

Référence

ESLint - Désactivation des règles avec des commentaires en ligne

Brylie Christopher Oxley
la source
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.)

LeeGee
la source
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
Raymond Wachaga
la source
9

Pour désactiver une seule règle pour le reste du fichier ci-dessous:

/* eslint no-undef: "off"*/
const uploadData = new FormData();
Farhan Salam
la source
1
ou/* eslint-disable no-new */
Илья Зеленько
6

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

alert('foo'); // eslint-disable-line
Debbie Ellis
la source
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.)

Sid
la source
-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

Yubin Shinhmar
la source
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