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

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

// eslint-disable-file no-use-before-define 

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

19 ответов

Решение

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

/* eslint no-use-before-define: 0 */  // --> OFF

or

/* eslint no-use-before-define: 2 */  // --> ON

Дополнительная информация: http://eslint.org/docs/user-guide/configuring.html

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

Проверьте: https://evanhahn.com/disable-eslint-for-a-file/

В зависимости от количества правил, которые вы хотите игнорировать (Все или Некоторые), и объема их отключения (Строка (и), Файл (и), Везде), у нас есть 2 × 3 = 6 случаев.


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

Случай 1.1: вы хотите отключить "Все правила" для "одной или нескольких строк"

Put `/* eslint-disable-line */` at the **end of the line(s)**, 
or `/* eslint-disable-next-line */` right **before the line**.

Случай 1.2: вы хотите отключить "Все правила" для "одного файла"

Put the comment of `/* eslint-disable */` at the top of the file.

Случай 1.3: вы хотите отключить "Все правила" для "Некоторые файлы"

Вы можете сделать это тремя способами:

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

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

Случай 2.1: вы хотите отключить "Некоторые правила" для "одной или нескольких линий"

You can put `/* eslint-disable-line quotes */` (replace `quotes` with your rules) at the end of the line(s), 
or `/* eslint-disable-next-line no-alert, quotes, semi */` before the line.

Случай 2.2: вы хотите отключить "Некоторые правила" для "одного файла"

Put the `/* eslint-disable no-use-before-define */` comment at the top of the file.  

Больше примеров здесь.

## Случай 2.3: вы хотите отключить "Некоторые правила" для "Некоторые файлы"

Это менее прямолинейно. Вы должны вставить их"excludedFiles" объект "overrides" раздел вашего .eslintrcкак указано здесь.

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

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js

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

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

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */

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

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

"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]

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

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

  1. no-use-before-define
  2. max-lines-per-function

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

/spec

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

"overrides": [
  {
    "files": ["spec/**/*.js"],
    "rules": {
      "no-use-before-define": ["off"],
      "max-lines-per-function": ["off"]
    }
  }
]

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

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

/* eslint-disable */

Это отключит ESLint до

/* eslint-enable */

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

Вы можете прочитать больше об этой теме здесь.

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

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

/* eslint-disable no-use-before-define */

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

/*eslint-disable */

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

/*eslint-enable */

это сработало для меня

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

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

{
    "ignorePatterns": ["fileToBeIgnored.js"],
    "rules": {
        //...
    }
}

См. Документы

вы можете добавить эти строки вверху файла.

      // @ts-nocheck
/* eslint-disable */

Просто добавьте это в начало файла. Это соответственно отключает все предупреждения eslint.

      /* eslint-disable */

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

Здесь я хочу выключить no-duplicate-string Правило для проверки всех файлов.

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]

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

/* eslint-disable no-console */

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

/* eslint-disable @typescript-eslint/no-unused-vars */

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

// eslint-disable @typescript-eslint/no-unused-vars

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

Источник: https://eslint.org/docs/2.13.1/user-guide/configuring

Строка игнорирования файлов и каталогов

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

/* eslint no-console: "off", no-mixed-operators: "off" */

Версия: eslint@4.3.0

Выполните следующие шаги, чтобы отключить ESLint из вашего проекта.

  • откройте файл package.config в своем проекте.
  • удалите все зависимости, связанные с ESLint.
  • удалите файлы eslint.js / eslintconfig из вашего проекта
  • запустить команду npm install
  • теперь запустите свой проект
Другие вопросы по тегам