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.

runtimeZero
quelle
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

goofballLogic
quelle
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 .

Nick Tomlin
quelle
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

ein darren
quelle
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
James Skemp
quelle
35

Antworten

Sie können einen Inline-Kommentar verwenden : // eslint-disable-next-line rule-name.

Beispiel

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

Referenz

ESLint - Deaktivieren von Regeln mit Inline-Kommentaren

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

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

So deaktivieren Sie eine einzelne Regel für den Rest der folgenden Datei:

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

So deaktivieren Sie alle Regeln in einer bestimmten Zeile:

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

Sid
quelle
-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

Yubin Shinhmar
quelle
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