Wyłączanie reguły eslint dla określonej linii


1344

Aby wyłączyć regułę przyciemniania dla określonej linii w JSHint, stosujemy następującą regułę:

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

Próbowałem znaleźć odpowiednik powyższego dla eslint.


86
Zastosowanie eslint-disable-next-line:
Brylie Christopher Oxley

Począwszy od ESLint v7, możesz określić przyczynę wyłączenia danej reguły w tym samym komentarzu.
Dan Dascalescu

Odpowiedzi:


2151

Możesz teraz użyć składni jednowierszowej:

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

function Thing() {

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

}

Lub jeśli nie chcesz komentować tego samego wiersza z rzeczywistym kodem, możesz wyłączyć następny wiersz:

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

Żądany link do dokumentacji: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Teraz dostaję kolejny problem z eslint: ostrzeżenie Nieoczekiwany komentarz w tekście z kodem no-inline-comments :(
arcseldon

51
Działa świetnie dla mnie. Również jeśli nie zależy ci na specyficzności, możesz to zrobić //eslint-disable-linei wydaje się, że wyłącza wszystkie reguły dla danej linii.
KhalilRavanna

7
Z jakiegoś powodu to nie działa dla mnie; Używam eslint 3.8.0. Muszę użyć / * eslint-disable * / i / * eslint-enable * /. Wiesz, dlaczego to może być? Podoba mi się podejście jednoliniowe
coś

8
@SomethingOn miał ten sam problem, okazało się, że --no-inline-configwłączyłem, któryPrevent comments from changing config or rules
tibalt

4
Nie działa z „gulp-eslint”: „^ 3.0.1”. Muszę użyć / * eslint-disable * /
olefrank

528

Możesz użyć następujących

/*eslint-disable */

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

/*eslint-enable */

Który jest nieco zakopany w sekcji „Konfigurowanie reguł” w dokumentacji ;

Aby wyłączyć ostrzeżenie dla całego pliku, możesz dołączyć komentarz na górze pliku, np

/*eslint eqeqeq:0*/

Aktualizacja

ESlint został teraz zaktualizowany o lepszy sposób wyłączania pojedynczej linii, patrz doskonała odpowiedź @ goofballLogic .


5
BTW, wygląda na to, że //składnia komentarza nie działa…
MonsieurDart

Dodatkowo uwaga: szukałem wyłączenia eslinta dla jednej linii w HTML. to działa: thumbsup:
Adil H. Raza

221

Możesz także wyłączyć określoną regułę / reguły (a nie wszystkie), określając je w blokach włączania (otwierania) i wyłączania (zamykania):

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

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

/* eslint-enable no-alert */

za pomocą linku @ goofballMagic powyżej: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Upewnij się, że twoje komentarze eslint minęły! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

Używam kombinacji prettieri eslintdo formatowania mojego kodu. Nie pozwala to na wstawianie komentarzy. Wiele /* eslint-disable-next-line ... */instrukcji jest trudnych do odczytania i zauważenia w kodzie.
Bernhard Döbler,

77

Z Konfigurowanie ESLint - Wyłączanie reguł za pomocą wbudowanych komentarzy :

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

Ogólny komentarz na końcu wiersza // eslint-disable-linenie wymaga niczego po tym: nie trzeba wyszukiwać kodu, aby określić, co ma ignorować ES Lint.

Jeśli chcesz zignorować składnię z jakiegokolwiek innego powodu niż szybkie debugowanie, masz problemy: dlaczego nie zaktualizować konfiguracji delinta?

Cieszę się, // eslint-disable-lineże mogę wstawićconsole celu szybkiej kontroli usługi, bez środowiska programistycznego, które powstrzymuje mnie z powodu naruszenia protokołu. (Generalnie zbanowuję consolei używam klasy rejestrującej - która czasami bazuje na console.)


Bez obrazy, ale jest to to samo rozwiązanie, co zaakceptowana odpowiedź, więc nie wiesz, jak to pomaga?
darren

25
Nie rób tego. Jeśli masz 5 błędów w linii, wszystkie zostaną zignorowane. Zawsze wyraźnie określ regułę, która ma być ignorowana, w przeciwnym razie dzieci zrobią bałagan.
Filip Dupanović,

3
@ FilipDupanović Jeśli programiści mogą zrobić bałagan w jednym wierszu kodu, tylko dlatego, że eslint nie patrzy ponad ich ramionami w poszukiwaniu jednego wiersza. W Twojej firmie naprawdę dzieje się coś innego ... To powiedzenie, która reguła chcesz zignorować, wyjaśnia, dlaczego umieściłeś tam linię wyłączania.
Edwin Stoteler

2
@ FilipDupanović Może eslint powinien mieć meta regułę wymagającą zignorowania reguły jawnej? Może już to robi.
Josef.B,

1
@ Josef.B istnieje niestandardowa reguła: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Działa naprawdę ładnie.
Craig Harley

13

Lub w przypadku wielokrotnego ignorowania w następnym wierszu, łańcuch reguł za pomocą przecinków

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


6

Aby wyłączyć wszystkie reguły w określonej linii:

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

1

komentarz jednowierszowy nie działał dla mnie wewnątrz reagującego głupiego komponentu funkcjonalnego, użyłem wyłączania na poziomie pliku przez dodanie / * eslint-disable insertEslintErrorDefinitionHere * /

(normalnie, jeśli używasz vs kodu i pojawia się błąd eslint, możesz kliknąć linię, która daje błąd, a żarówka pojawi się w kodzie vs, kliknij prawym przyciskiem myszy żarówkę i wybierz dowolną opcję wyłączenia, a kod vs zrobi to dla ty.)


-5

Możesz dodać pliki, które powodują błąd do pliku .eslintignore w swoim projekcie. Podobnie jak w przypadku wszystkich plików .vue, po prostu dodaj /*.vue


4
poprosił o jedną linię, a nie cały plik
Kevin Danikowski

Mógł też przestać używać eslint ... Jeśli po prostu zignorujesz każdy plik, który ma problem, dlaczego w ogóle go używasz?
Ruud Verhoef,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.