Отключение правила 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.