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.

runtimeZero
źródło
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

goofballLogic
źródło
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 .

Nick Tomlin
źródło
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

darren
źródło
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
James Skemp
źródło
35

Odpowiedź

Można użyć inline komentarz: // eslint-disable-next-line rule-name.

Przykład

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

Odniesienie

ESLint - Wyłączanie reguł za pomocą wbudowanych komentarzy

Brylie Christopher Oxley
źródło
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.)

LeeGee
źródło
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
Raymond Wachaga
źródło
9

Aby wyłączyć jedną regułę dla pozostałej części pliku poniżej:

/* eslint no-undef: "off"*/
const uploadData = new FormData();
Farhan Salam
źródło
1
lub/* eslint-disable no-new */
Илья Зеленько
6

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

alert('foo'); // eslint-disable-line
Debbie Ellis
źródło
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.)

Sid
źródło
-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

Yubin Shinhmar
źródło
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,