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

1347

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

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

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

runtimeZero
источник
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

goofballLogic
источник
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.)

LeeGee
источник
Без обид, но это то же решение, что и принятый ответ, так что не знаете, как это поможет?
Даррен
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
Раймонд Вачага
источник
9

Чтобы отключить одно правило для остальной части файла ниже:

/* eslint no-undef: "off"*/
const uploadData = new FormData();
Фархан Салам
источник
1
или/* eslint-disable no-new */
Илья Зеленько
6

Чтобы отключить все правила в определенной строке:

alert('foo'); // eslint-disable-line
Дебби Эллис
источник
1

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

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

Sid
источник
-5

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

Юбин Шинмар
источник
4
он попросил одну строку, а не весь файл
Кевин Даниковски
Он также может перестать использовать eslint ... Если вы просто игнорируете каждый файл, который имеет проблему, зачем вообще его использовать?
Рууд