Отключение правила 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 */
в верхней части файла
В зависимости от количества правил, которые вы хотите игнорировать (Все или Некоторые), и объема их отключения (Строка (и), Файл (и), Везде), у нас есть 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.2 и добавить
/* eslint-disable */
поверх файлов, один за другим. - Вы можете указать имена файлов в
.eslintignore
. Это хорошо работает, особенно если у вас есть путь, который вы хотите игнорировать. (напримерapidoc/**
) - В качестве альтернативы, если вы не хотите иметь отдельный
.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
файл конфигурации.
Например, если вы хотите удалить следующие правила:
no-use-before-define
max-lines-per-function
Для всех файлов в следующем основном каталоге:
/spec
Вы можете добавить это в свой
.eslintrc
файл...
"overrides": [
{
"files": ["spec/**/*.js"],
"rules": {
"no-use-before-define": ["off"],
"max-lines-per-function": ["off"]
}
}
]
Обратите внимание, что я использовал
**
внутри
spec/**/*.js
regex, что означает, что я рекурсивно ищу все подпапки внутри папки с именем
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
- теперь запустите свой проект