Вимкнення правила eslint для певного рядка


1345

Для того, щоб вимкнути правило зв’язування для певної лінії в JSHint, ми використовуємо таке правило:

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

Я намагався знайти еквівалент вищезазначеного для eslint.


86
Використання eslint-disable-next-line:
Брайлі Крістофер Окслі

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

Відповіді:


2152

Ви можете використовувати синтаксис одного рядка зараз:

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

51
Для мене чудово працює. Крім того, якщо вас не цікавить конкретність, ви можете просто зробити, //eslint-disable-lineі, здається, вимкнути всі правила для даного рядка.
ХалилРаванна

7
Чомусь це не працює для мене; Я запускаю eslint 3.8.0. Мені потрібно використовувати / * eslint-disabled * / та / * eslint-enable * /. Будь-яка ідея, чому це може бути? Мені подобається однолинейная підхід
SomethingOn

8
@SomethingOn мала таку ж проблему, виявилося, що я --no-inline-configввімкнув, якаPrevent comments from changing config or rules
tibalt

4
Не працює з "gulp-eslint": "^ 3.0.1". Мені доводиться користуватися / * eslint-disabled * /
olefrank

528

Можна скористатися наступним

/*eslint-disable */

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

/*eslint-enable */

Який трохи закопаний розділ "правила налаштування" в документах ;

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

/*eslint eqeqeq:0*/

Оновлення

ESlint тепер оновлено, щоб краще відключити один рядок, див. Відмінну відповідь @ goofballLogic .


5
До речі, здається, що //синтаксис коментарів не працює ...
MonsieurDart

Також збоку, я шукав відключення eslint для одного рядка в html. працює: великий палець:
Аділ Х. Раза

221

Ви також можете відключити певне правило / правила (а не всі), вказавши їх у блоках увімкнення (відкриття) та відключення (закриття):

/* 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 ... */тверджень важко читати та помічати в коді.
Бернхард Дьоблер

77

З налаштування 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 повинен мати мета правило, яке вимагає явного правила ігнорування? Можливо, це вже є.
Йозеф.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-disabled insertEslintErrorDefinitionHere * /

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


-5

Ви можете додати файли, які дають помилку у файл .eslintignore у вашому проекті. Як і для всіх .vue-файлів, просто додайте /*.vue


4
він попросив один рядок, а не весь файл
Кевін Даніковський

Він також міг би припинити використання eslint ... Якщо ви просто ігноруєте кожен файл, який має проблему, навіщо його взагалі використовувати?
Рууд Верхоеф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.