Отключить Eslint для файла

Обновлено: 01.07.2024

Можно ли отключить правило eslint для всего файла? Что-то вроде:

(Аналогично eslint-disable-line.) Со мной довольно часто случается, что в определенном файле я нарушаю определенное правило во многих местах, которое считается допустимым для этого файла, но я не хочу чтобы отключить правило для всего проекта, и при этом я не хочу отключать другие правила для этого конкретного файла.


Здесь так много повторяющихся ответов... Если бы мод мог удалить все ответы /* eslint-disable */, кроме первого, было бы неплохо

18 ответов 18

Вы можете отключить/изменить определенное правило для файла, поместив настройки в начало файла.

Есть ли способ поместить в файл .eslintrc правило, которое применяет все правила для конкретных файлов, подобные этому, к началу файла?

Хорошо! Видел несколько ответов JSON-y, которые, похоже, не работали для отключения ошибок без верблюжьего регистра, но это ( /* eslint camelcase: 0 */ ) помогло (с использованием eslint через standard.js)

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

Обратите внимание, что в eslint есть ошибка, из-за которой однострочный комментарий не работает -


Это отключит все правила eslint в этом блоке, а не только правило no-use-before-define, которое должно игнорироваться

По сути, в этом вся идея. Вопрос "Можно ли отключить правило eslint для всего файла?"

@Wahome "Можно ли отключить правило eslint для всего файла?" Правило слова единственное число. Ваш ответ отключает все правила во множественном числе.

в описании он упомянул, что хочет что-то вроде отключения определенного правила - прочитайте еще раз вопрос!

Это правда, это не отвечает на весь вопрос, но все же полезный ответ, так как эта тема является лучшим результатом при поиске в гугле "файл игнорирования eslint"

Вы можете указать ESLint игнорировать определенные файлы и каталоги, создав файл .eslintignore в корневом каталоге вашего проекта:

.eslintignore

Шаблоны игнорирования ведут себя в соответствии со спецификацией .gitignore. (Не забудьте перезапустить редактор.)

Очень красиво! Вы также можете добавлять файлы в каталоги, подкаталоги, подподкаталоги рекурсивным способом, используя **. Например: spec/javascripts/**/*.js .

Идеально — это особенно полезно для файлов, которые создаются автоматически и часто изменяются (например, aws-exports.js, если вы используете AWS Amplify или MobileHub)

Давайте разберем сценарии, как вы всегда делаете, дорогой замечательный разработчик!

Для начала задайте себе два вопроса.

Вопрос первый: сколько «правил» вы хотите игнорировать?

  1. Все правила
  2. Одно или несколько специальных правил (например, кавычки или полуслова)

Вопрос второй: сколько «строк/файлов» вы хотите игнорировать?

Теперь, исходя из ваших ответов, есть 2 × 3 = 6 случаев.

1) Отключение «Все правила»

Вариант 1.1. Вы хотите отключить «Все правила» для «Одной или нескольких строк»

Два способа сделать это:

  1. Поместите /* eslint-disable-line */ в конец строки (строк),
  2. или /* eslint-disable-next-line */ прямо перед строкой.

Вариант 1.2. Вы хотите отключить «Все правила» для «Одного файла»

  • Поместите комментарий /* eslint-disable */ вверху файла.

Вариант 1.3. Вы хотите отключить «Все правила» для «Некоторых файлов»

Это можно сделать тремя способами:

  1. Вы можете использовать 1.2 и добавить /* eslint-disable */ поверх файлов, один за другим.
  2. Вы можете указать имена файлов в .eslintignore . Это хорошо работает, особенно если у вас есть путь, который вы хотите игнорировать. (например, apidoc/** )
  3. В качестве альтернативы, если вы не хотите иметь отдельный файл .eslintignore, вы можете добавить "eslintIgnore": ["file1.js", "file2.js"] в package.json, как указано здесь.

2) Отключение «Некоторых правил»

Вариант 2.1. Вы хотите отключить «Некоторые правила» для «Одной или нескольких строк»

Два способа сделать это:

Вы можете поместить /* кавычки eslint-disable-line */ (замените кавычки вашими правилами) в конце строки (строк),

или /* eslint-disable-next-line no-alert, quotes, semi */ перед строкой.

Совет: если у вас есть несколько строк, для которых вы хотите игнорировать одни и те же правила, вы можете отключить и включить следующие правила:

Вариант 2.2. Вы хотите отключить «Некоторые правила» для «Одного файла»

  • Поместите комментарий /* eslint-disable no-use-before-define */ в начало файла.

Вариант 2.3. Вы хотите отключить «Некоторые правила» для «Некоторых файлов»

  • Это не так просто. Вы должны создать раздел «переопределения» в вашем .eslintrc и указать, какие правила должны быть отключены/изменены для каких глобусов/файлов.Пример можно найти в этом ответе.

Также обратите внимание, что для eslint-disable можно использовать только комментарий в стиле /* */. // eslint-disable no-use-before-define не сработает. Однако это работает для // eslint-disable-next-line.

Спасибо, @victor, что обратил на это мое внимание. Похоже, ссылки на документацию eslint изменились. Я обновил их, а также сделал ссылку на ваш ответ для 2.3. :) Спасибо!

+1, будучи новичком в TypeScript, эта штука с eslint сводила меня с ума, но я не хотел ее отключать, так как многие предупреждения были полезными. Этот ответ спас положение!

Вы также можете отключить/включить правило следующим образом:

Аналогично eslint-disable-line, упомянутому в вопросе. Это может быть лучшим методом, если вы не хотите восстанавливать сложную конфигурацию правила при его повторном включении.

Я предпочитаю этот, потому что он восстанавливает уровень (предупреждение, ошибка), который я определил в моей конфигурации eslint.

Лучше добавить "переопределения" в файл конфигурации .eslintrc.js. Например, если вы не хотите отключать правило camelcase для всех файлов js, оканчивающихся на Actions, добавьте этот код после области действия правил в .eslintrc.js.

Отлично работает! ИМХО, это должен быть принятый ответ. Этот способ остается в файле eslintrc (сохраняет исходные файлы в чистоте) и может переопределять поведение определенных правил для определенных файлов. +1

Хорошо работает с файлом *.d.ts, так что вы можете перестать выдавать предупреждения об определениях типов для таких вещей, как no-unused-vars или max-classes-per-file или no-use-before-define

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

Это отключит ESLint до тех пор, пока

комментарий достигнут.

Подробнее об этой теме можно прочитать здесь.

Принятый ответ у меня не сработал (возможно, другая версия eslint. Я использую eslint v3.19.0), но нашел решение со следующим.

Поместите следующее в начало файла

Это отключит правило для всего файла

<р>. или несколько, например /* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */

то же самое, принятый ответ мне не помог. Два отличия: изменение eslint на eslint-disable и удаление : 0 . Использование eslint@4.19.1.

Чтобы отключить определенные правила для файлов внутри папок, необходимо использовать ключ "overrides" в файле конфигурации .eslintrc.

Например, если вы хотите удалить следующие правила:

  1. не использовать перед определением
  2. максимальное количество строк на функцию

Для всех файлов в следующем основном каталоге:

Вы можете добавить это в свой файл .eslintrc.

Обратите внимание, что я использовал ** внутри глобуса spec/**/*.js, что означает, что я рекурсивно ищу все подпапки внутри папки с именем spec и выбираю все файлы, которые заканчиваются на js, чтобы удалить нужные правила. от них.

ИМХО, такой подход усложнит поддержку. Будущий разработчик, который хочет знать, почему определенное правило отключено, должен искать во многих местах. Может быть проще либо централизовать переопределение правил в одном месте (один .eslintrc / .eslintignore ), либо сделать это для каждой строки/файла, либо и то, и другое.

Я не понимаю вашего беспокойства, потому что этот подход точно централизует переопределение правил внутри одного места: файла .eslintrc.

Понятно. У меня сложилось впечатление, что вы говорите о размещении нескольких файлов .eslintrc в разных папках. Виноват. :)

Это отключит все правила eslint в блоке.


Это отключит все правила eslint в этом блоке, а не только правило no-use-before-define, которое должно игнорироваться

Это помогло мне, спасибо! Также рассмотрите этот ответ на вопрос, отключение всех правил также отключает предполагаемое правило

Просто и эффективно.

Eslint 6.7.0 добавил "ignorePatterns" для записи в .eslintrc.json, как в этом примере:


Вы можете просто поместить это, например, вверху файла:


вы можете настроить свойство eslint overrides, чтобы отключить определенные правила для файлов, которые соответствуют шаблону glob, как показано ниже.

Здесь я хочу отключить правило отсутствия повторяющихся строк для проверки всех файлов.

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

Если вы хотите отключить проверки ESLint или TypeScript внутри файла, вы можете добавить эти строки в начало файла. Первый отключит проверки TypeScript, а второй — проверки ESLint.


На сегодняшний день ответ мне не подходит, но размещение этого в начале файла работает:

Важно знать, что по крайней мере в моем случае тип комментария имеет значение. Предыдущий комментарий работает для меня, но следующий не будет работать:

Вы можете отключить определенное правило для файла, используя /*eslint [ ]*/

/* eslint без консоли: "выключено", без смешанных операторов: "выключено" */


Просто создайте пустой файл .eslintignore в корне вашего проекта и введите путь к файлу, который вы хотите игнорировать.

Строка игнорирует файлы и каталоги

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

/* eslint-enable */ Вы также можете отключить или включить предупреждения для определенных правил:

/* eslint-disable без предупреждений, без консоли */

/* eslint-enable no-alert, no-console / Чтобы отключить предупреждения правил во всем файле, поместите комментарий / eslint-disable */ block в начало файла:< /p>

оповещение('foo'); Вы также можете отключить или включить определенные правила для всего файла:

оповещение('foo'); Чтобы отключить все правила для определенной строки, используйте комментарий к строке в одном из следующих форматов:

Ниже приведены примеры отключения ESLint для страницы

// eslint-disable-next-line alert('foo'); Чтобы отключить определенное правило для определенной строки:

оповещение('foo'); // eslint-disable-line без предупреждения

// eslint-disable-next-line оповещение об отсутствии предупреждений('foo'); Чтобы отключить несколько правил в определенной строке:

Читайте также: