Отключение правила eslint для конкретной строки


1347

Чтобы отключить правило лининга для конкретной строки в JSHint, мы используем следующее правило:

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

Я пытался найти эквивалент выше для eslint.


86
Использование eslint-disable-next-line:
— Брайли Кристофер Оксли

Начиная с ESLint v7, вы можете указать причину отключения данного правила в том же комментарии.
— Дан Дакалеску

Ответы:


2158

Теперь вы можете использовать однострочный синтаксис:

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

function Thing() {

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

}

Или, если вы не хотите иметь комментарий к той же строке с текущим кодом, можно отключить следующую строку:

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

Ссылка на запрашиваемую документацию: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
Теперь у меня другая проблема: предупреждение Неожиданный комментарий в строке с кодом no-inline-comments :(
— arcseldon

52
Прекрасно работает для меня. Также, если вы не заботитесь о специфике, вы можете просто сделать это, //eslint-disable-lineи, похоже, отключить все правила для данной строки.
— ХалилРаванна

7
По некоторым причинам это не работает для меня; Я бегу eslint 3.8.0. Я должен использовать / * eslint-disable * / и / * eslint-enable * /. Есть идеи, почему это может быть? Мне нравится однострочный подход
— SomethingOn

8
У @SomethingOn была та же самая проблема, оказалось, что я --no-inline-configвключил, которыйPrevent comments from changing config or rules
— tibalt

4
Не работает с "gulp-eslint": "^ 3.0.1". Я должен использовать / * eslint-disable * /
— olefrank

530

Вы можете использовать следующее

/*eslint-disable */

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

/*eslint-enable */

Который немного утоплен в разделе «Настройка правил» документации ;

Чтобы отключить предупреждение для всего файла, вы можете добавить комментарий вверху файла, например

/*eslint eqeqeq:0*/

Обновить

ESlint был обновлен, чтобы лучше отключить одну строку, см. Отличный ответ @ goofballLogic .


5
Кстати, кажется, что //синтаксис комментариев не работает ...
— MonsieurDart

Также примечание, я искал отключение eslint для одной строки в html. это работает: thumbsup:
— Адил Х. Раза

223

Вы также можете отключить определенное правило / правила (а не все), указав их в блоках enable (open) и disable (close):

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

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

/* eslint-enable no-alert */

по ссылке @ goofballMagic выше: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
Убедитесь, что ваши комментарии eslint проходят eslint! -> Expected exception block, space or tab after '/*' in comment.:)
— Римиан

Я использую комбинацию prettierи eslintдля форматирования моего кода. Это не позволяет встроенные комментарии. Многие /* eslint-disable-next-line ... */утверждения трудно прочитать и обнаружить в коде.
— Бернхард Доблер

78

От настройки ESLint - Отключение правил с помощью встроенных комментариев :

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

Общий конец строки комментария, // eslint-disable-line после него ничего не требует: не нужно искать код, чтобы указать, что вы хотите игнорировать ES Lint.

Если вам нужно игнорировать любой синтаксис по любой причине, кроме быстрой отладки, у вас есть проблемы: почему бы не обновить конфигурацию delint?

Мне нравится // eslint-disable-lineпозволять мне вставлять consoleдля быстрой проверки службы, без моей среды разработки, сдерживающей меня из-за нарушения протокола. (Я обычно забаню consoleи использую класс журналирования - который иногда основывается на console.)


Без обид, но это то же решение, что и принятый ответ, так что не знаете, как это поможет?
— Даррен

25
Не делайте этого. Если в строке 5 ошибок, все они будут игнорироваться. Всегда четко устанавливайте правило, которое следует игнорировать, иначе дети будут создавать беспорядок.
— Филип Дупанович

3
@ FilipDupanović Если ваши программисты могут создать беспорядок в одной строке кода, просто потому, что eslint не смотрит через плечо ни на одну строку. В вашей компании действительно что-то не так ... Это говорит о том, что правило, которое вы хотите игнорировать, делает более понятным, почему вы ставите строку запрета на первое место.
— Эдвин Стотелер

2
@ FilipDupanović Может быть, у eslint должно быть мета-правило для требования игнорировать явное правило? Возможно это уже делает.
— Josef.B

1
@ Josef.B для этого есть нестандартное правило: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… Это работает очень хорошо.
— Крейг Харли

13

Или для нескольких игнорирований в следующей строке, введите правила, используя запятые

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



1

однострочный комментарий у меня не работал внутри реагирующего немого функционального компонента, я использовал отключение на уровне файлов, добавив / * eslint-disable insertEslintErrorDefinitionHere * /

(обычно, если вы используете vs-код и получаете ошибку eslint, вы можете нажать на строку, которая дает ошибку, и лампочка отобразится в vs-коде, щелкнуть правой кнопкой мыши на лампочке и выбрать любую опцию отключения, и vs code сделает это для вы.)


-5

Вы можете добавить файлы с ошибкой в ​​файл .eslintignore в вашем проекте. Как и для всех файлов .vue, просто добавьте /*.vue


4
он попросил одну строку, а не весь файл
— Кевин Даниковски

Он также может перестать использовать eslint ... Если вы просто игнорируете каждый файл, который имеет проблему, зачем вообще его использовать?
— Рууд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.