Deaktivieren der Eslint-Regel für eine bestimmte Zeile


1346

Um die Flusenregel für eine bestimmte Zeile in JSHint zu deaktivieren, verwenden wir die folgende Regel:

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

Ich habe versucht, das Äquivalent des oben genannten für eslint zu finden.


86
Verwenden Sie eslint-disable-next-line:
Brylie Christopher Oxley

Ab ESLint v7 können Sie im selben Kommentar den Grund für das Deaktivieren einer bestimmten Regel angeben .
Dan Dascalescu

Antworten:


2156

Sie können jetzt die einzeilige Syntax verwenden:

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

function Thing() {

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

}

Wenn Sie keinen Kommentar in derselben Zeile mit dem eigentlichen Code haben möchten, können Sie die nächste Zeile deaktivieren:

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

Angeforderter Dokumentlink: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Jetzt bekomme ich ein weiteres Problem: Warnung Unerwarteter Kommentar inline mit Code no-inline-Kommentare :(
arcseldon

52
Funktioniert super für mich. Auch wenn Sie sich nicht für die Spezifität interessieren, können Sie dies einfach tun //eslint-disable-lineund es scheint, dass alle Regeln für die angegebene Zeile deaktiviert werden.
KhalilRavanna

7
Aus irgendeinem Grund funktioniert das bei mir nicht. Ich verwende eslint 3.8.0. Ich muss / * eslint-disable * / und / * eslint-enable * / verwenden. Irgendeine Idee, warum das so sein könnte? Ich mag den einzeiligen Ansatz
SomethingOn

8
@SomethingOn hatte das gleiche Problem, stellte sich heraus, dass ich eingeschaltet hatte --no-inline-config, diePrevent comments from changing config or rules
Tibalt

4
Funktioniert nicht mit "gulp-eslint": "^ 3.0.1". Ich muss / * eslint-disable * /
olefrank

528

Sie können Folgendes verwenden

/*eslint-disable */

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

/*eslint-enable */

Welches ist leicht vergraben der Abschnitt "Regeln konfigurieren" der Dokumente ;

Um eine Warnung für eine gesamte Datei zu deaktivieren, können Sie einen Kommentar oben in die Datei einfügen, z

/*eslint eqeqeq:0*/

Aktualisieren

ESlint wurde jetzt mit einer besseren Möglichkeit aktualisiert, eine einzelne Zeile zu deaktivieren. Siehe die ausgezeichnete Antwort von @ goofballLogic .


5
Übrigens scheint die //Kommentarsyntax nicht zu funktionieren…
MonsieurDart

Auch eine Randnotiz, ich suchte nach Deaktivierung von eslint für eine Zeile in HTML. das funktioniert: thumbsup:
Adil H. Raza

223

Sie können auch eine bestimmte Regel (und nicht alle) deaktivieren, indem Sie sie in den Blöcken enable (open) und disable (close) angeben:

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

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

/* eslint-enable no-alert */

über den obigen Link von @ goofballMagic: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Stellen Sie sicher, dass Ihre Eslint-Kommentare Eslint bestehen! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

Ich verwende eine Kombination aus prettierund, eslintum meinen Code zu formatieren. Dies erlaubt keine Inline-Kommentare. Viele /* eslint-disable-next-line ... */Aussagen sind schwer zu lesen und im Code zu erkennen.
Bernhard Döbler

78

Aus der Konfiguration von ESLint - Deaktivieren von Regeln mit Inline-Kommentaren :

/* 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

Der allgemeine Zeilenende-Kommentar // eslint-disable-linebenötigt danach nichts mehr: Sie müssen keinen Code nachschlagen, um anzugeben, was ES Lint ignorieren soll.

Wenn Sie eine Syntax aus einem anderen Grund als einem schnellen Debugging ignorieren müssen, haben Sie Probleme: Warum nicht Ihre Delint-Konfiguration aktualisieren?

Es macht mir Spaß // eslint-disable-line, mich consolefür eine schnelle Überprüfung eines Dienstes einfügen zu lassen , ohne dass mich meine Entwicklungsumgebung aufgrund eines Protokollverstoßes zurückhält. (Ich verbiete im Allgemeinen consoleund verwende eine Protokollierungsklasse - die manchmal darauf aufbaut console.)


Nichts für ungut, aber dies ist die gleiche Lösung wie die akzeptierte Antwort. Sie sind sich also nicht sicher, wie dies hilft?
ein Darren

25
Mach das nicht. Wenn Sie 5 Fehler in der Zeile haben, werden alle ignoriert. Stellen Sie immer explizit die Regel ein, die ignoriert werden soll, sonst machen die Kinder ein Chaos.
Filip Dupanović

3
@ FilipDupanović Wenn Ihre Programmierer in einer einzigen Codezeile ein Durcheinander verursachen können, nur weil eslint nicht über die Schulter nach einer einzigen Zeile sucht. In Ihrem Unternehmen läuft wirklich noch etwas schief ... Wenn Sie jedoch sagen, welche Regel Sie ignorieren möchten, wird klarer, warum Sie die Deaktivierungslinie überhaupt erst dort platzieren.
Edwin Stoteler

2
@ FilipDupanović Vielleicht sollte eslint eine Metaregel haben, nach der explizite Regeln ignoriert werden müssen? Vielleicht schon.
Josef.B

1
@ Josef.B Dafür gibt es eine nicht standardmäßige Regel: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Es funktioniert wirklich gut.
Craig Harley

13

Oder setzen Sie die Regeln für mehrere Ignorierungen in der nächsten Zeile mit Kommas

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


6

So deaktivieren Sie alle Regeln in einer bestimmten Zeile:

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

1

Einzeiliger Kommentar hat bei mir in einer reaktionsschnellen Funktionskomponente nicht funktioniert. Ich habe die Deaktivierung auf Dateiebene durch Hinzufügen von / * eslint-disable insertEslintErrorDefinitionHere * / verwendet.

(Wenn Sie vs-Code verwenden und einen Eslint-Fehler erhalten, können Sie normalerweise auf die Zeile klicken, die einen Fehler anzeigt, und eine Glühbirne wird in vs-Code angezeigt. Klicken Sie mit der rechten Maustaste auf die Glühbirne und wählen Sie eine Deaktivierungsoption aus. vs-Code erledigt dies Du.)


-5

Sie können die Dateien hinzufügen, die der .eslintignore-Datei in Ihrem Projekt einen Fehler geben. Wie bei allen .vue-Dateien fügen Sie einfach /*.vue hinzu


4
es fragte nach einer Zeile, nicht nach der gesamten Datei
Kevin Danikowski

Er könnte auch aufhören, eslint zu verwenden ... Wenn Sie einfach jede Datei ignorieren wollen, die ein Problem hat, warum sollten Sie sie überhaupt verwenden?
Ruud Verhoef
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.