Czy istnieje sposób na wyłączenie ostrzeżenia JSHint dla jednej linii?

264

Mam (pojedynczą) przypadek, w którym moja aplikacja evaljest używana i chciałbym ukryć ostrzeżenie JSHint tylko w tym przypadku.

Czy istnieje sposób na osiągnięcie tego? Konfiguracja, magiczny komentarz, ...?

Mike Aski
źródło

Odpowiedzi:

465

Tak, jest sposób. Dwa w rzeczywistości. W październiku 2013 r. Jshint dodał sposób ignorowania bloków kodu w następujący sposób:

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

Możesz również zignorować pojedynczy wiersz z końcowym komentarzem w następujący sposób:

ignoreThis(); // jshint ignore:line
Jason Punyon
źródło
Dla każdego, kto próbuje uruchomić wtyczki JSHint Sublime Text 2/3, musisz zaktualizować jshint specjalnie w folderze pakietu ST. (Właśnie natknąłem się na to z JSHint Gutter)
Josh
7
Czy można zignorować tylko określony błąd? na przykład. maxlen na tej konkretnej linii, ale nadal wykrywają inne błędy.
Jürgen Paul
4
dzięki Bogu za // jshint ignore:line- działa świetnie z;(function() { // jshint ignore:line
katy lavallee
4
Opcja „ignoruj” jest przestarzała i pojawia się błąd „zła opcja” przy użyciu wersji 0.9.9 funkcji integracji JSHint w środowisku Eclipse. Czy istnieje alternatywny sposób na zrobienie tego samego?
MidnightJava
2
Obejrzałem bad option: 'ignore', używając konkretnej opcji dla linii, którą chcę zignorować. W moim przypadku chciałem zignorować, if (x == null)ponieważ chcę, aby był równy więcej niż zero i użyty /* jshint eqnull:true */w tej samej funkcji, co ifwyciszenie JSHint.
Nate
102

Odpowiedź „zła” nie działała dla mnie. Zamiast tego użyłem tego, co było zalecane na stronie dokumentacji JSHints . Jeśli znasz wyrzucone ostrzeżenie, możesz je wyłączyć dla bloku kodu. Na przykład używam kodu innej firmy, który nie używa funkcji wielbłąda, ale wymagają tego moje reguły JSHint, co doprowadziło do ostrzeżenia. Aby to uciszyć, napisałem:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */
tollmanz
źródło
15
A jak mam ustalić mój numer ostrzegawczy?
11684
3
Gdy uruchomisz jshint i na początku pojawi się błąd, liczba zostanie podana.
tollmanz
5
Przepraszam. Zapomniałem, że zostawiłem komentarz, więc nie opublikowałem czegoś po sprawdzeniu dokumentów. Nie jest, musisz dodać --verbosedo polecenia, aby uzyskać numer ostrzeżenia.
11684
9
Alternatywnie, odpowiedź na to pokrewne pytanie sugeruje sprawdzenie messages.js . Uważam to za bardzo pomocne, ponieważ korzystam z WebStorm.
Michael Jess,
3
Wszystkie numery ostrzeżeń, błędów i informacje można znaleźć tutaj: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya
37

Jak widać w dokumentacji JSHint , możesz zmieniać opcje dla funkcji lub dla pliku . W twoim przypadku po prostu wstaw komentarz do pliku lub jeszcze bardziej lokalnie tylko w funkcji, która używa eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}
Odi
źródło
fwiw, to nie działało dla mnie z 2.1.9, ale działało po aktualizacji do 2.1.11
kangax