Gibt es eine Möglichkeit, die JSHint-Warnung für eine bestimmte Zeile zu unterdrücken?


264

Ich habe einen (Einzel-) Fall in meiner App evalverwendet, und ich möchte die JSHint-Warnung nur für diesen Fall unterdrücken.

Gibt es einen Weg, dies zu erreichen? Konfiguration, magischer Kommentar, ...?

Antworten:


465

Ja, es gibt einen Weg. Zwei in der Tat. Im Oktober 2013 hat jshint eine Möglichkeit hinzugefügt, Codeblöcke wie diese zu ignorieren:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Sie können auch eine einzelne Zeile mit einem nachfolgenden Kommentar wie folgt ignorieren:

ignoreThis(); // jshint ignore:line

Für alle, die versuchen, JSHint Sublime Text 2/3-Plugins zum Laufen zu bringen, müssen Sie jshint speziell im ST-Paketordner aktualisieren. (Ich bin speziell mit JSHint Gutter darauf gestoßen)
Josh

7
Ist es möglich, nur einen bestimmten Fehler zu ignorieren? z.B. maxlen in dieser bestimmten Zeile erkennt dennoch andere Fehler.
Jürgen Paul

4
Gott sei Dank für // jshint ignore:line- funktioniert gut mit;(function() { // jshint ignore:line
Katy Lavallee

4
Die Option "Ignorieren" ist veraltet und ich erhalte den Fehler "Schlechte Option" mit Version 0.9.9 der JSHint-Integrationsfunktion in Eclipse. Gibt es eine alternative Möglichkeit, dasselbe zu tun?
MidnightJava

2
Ich bin um das bad option: 'ignore'herumgekommen, indem ich die spezifische Option für die Zeile verwendet habe, die ich ignorieren möchte. In meinem Fall wollte ich ignorieren, if (x == null)weil ich möchte, dass es mehr als nur null ist und /* jshint eqnull:true */in derselben Funktion wie das ifzum Stummschalten von JSHint verwendet wird.
Nate

102

Die "böse" Antwort hat bei mir nicht funktioniert. Stattdessen habe ich das verwendet, was auf der JSHints- Dokumentenseite empfohlen wurde . Wenn Sie die ausgelöste Warnung kennen, können Sie sie für einen Codeblock deaktivieren. Zum Beispiel verwende ich Code von Drittanbietern, der keine Kamelfallfunktionen verwendet, aber meine JSHint-Regeln erfordern dies, was zu einer Warnung führte. Um es zum Schweigen zu bringen, schrieb ich:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
Und wie finde ich meine Warnnummer heraus?
11684

3
Wenn Sie jshint ausführen und den Fehler zunächst erhalten, wird die Nummer gemeldet.
Tollmanz

5
Oh, Entschuldigung. Ich habe vergessen, dass ich einen Kommentar hinterlassen habe, also habe ich nichts gepostet, nachdem ich die Dokumente überprüft habe. Es ist nicht so, dass Sie --verbosedem Befehl hinzufügen müssen, um die Warnnummer zu erhalten.
11684

9
Alternativ schlägt die Antwort auf diese verwandte Frage vor, messages.js zu überprüfen . Ich fand das sehr hilfreich, da ich WebStorm verwende.
Michael Jess

3
Alle Warn-, Fehler- und
Infonummern

37

Wie Sie in der Dokumentation von JSHint sehen können , können Sie die Optionen pro Funktion oder pro Datei ändern . In Ihrem Fall platzieren Sie einfach einen Kommentar in Ihrer Datei oder noch lokaler in der folgenden Funktion eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

fwiw, das hat bei mir mit 2.1.9 nicht funktioniert, aber nach dem Upgrade auf 2.1.11
kangax
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.