Eslint отключить для файла
ESLint поставляется с большим количеством встроенных правил,и вы можете добавлять дополнительные правила с помощью плагинов.Вы можете изменить,какие правила использует ваш проект,с помощью комментариев конфигурации или конфигурационных файлов.Чтобы изменить настройки правила,необходимо установить ID правила равным одному из этих значений:
- "off" or 0 - turn the rule off --> "off" или 0 - выключить правило
- "warn" or 1 - turn the rule on as a warning (doesn't affect exit code) --> "warn" или 1 - включить правило как предупреждение (не влияет на код выхода)
- "error" or 2 - turn the rule on as an error (exit code is 1 when triggered) --> "error" или 2 - включить правило как ошибку (код выхода 1 при срабатывании)
Использование комментариев к конфигурации
Для настройки правил внутри файла с помощью конфигурационных комментариев используйте комментарий в следующем формате:
eqeqeq is turned off and curly is turned on as an error. You can also use the numeric equivalent for the rule severity: --> В этом примере, eqeqeq выключен и curly включен как ошибка. Вы также можете использовать числовой эквивалент серьезности правила:
eqeqeq rule is off and the curly rule is set to be an error. --> Этот пример такой же, как и последний, только использует числовые коды вместо строковых значений. eqeqeq правило выключено и curly правило устанавливается, ошибка.
Если правило имеет дополнительные опции,вы можете указать их,используя синтаксис массивов,например:
quotes rule. The first item in the array is always the rule severity (number or string). --> Этот комментарий определяет «двойной» вариант правила quotes . Первым элементом в массиве всегда является степень серьезности правила (число или строка).
- characters. For example: --> Комментарии к конфигурации могут включать описания, объясняющие, почему этот комментарий необходим. Описание должно находиться после конфигурации и отделяться от конфигурации двумя или более последовательными символами - . Например:
Использование конфигурационных файлов
rules key along with an error level and any options you want to use. For example: --> Чтобы настроить правила внутри файла конфигурации, используйте ключ rules вместе с уровнем ошибки и любыми параметрами, которые вы хотите использовать. Например:
/ . For example: --> Чтобы настроить правило, которое определено в подключаемом модуле, вы должны указать перед идентификатором правила имя подключаемого модуля и / . Например:
plugin1/rule1 comes from the plugin named plugin1 . You can also use this format with configuration comments, such as: --> В этих файлах конфигурации правило plugin1/rule1 происходит от подключаемого модуля с именем plugin1 . Вы также можете использовать этот формат с комментариями к конфигурации, например:
eslint-plugin- . ESLint uses only the unprefixed name internally to locate rules. --> Примечание. При указании правил из подключаемых eslint-plugin- обязательно опускайте eslint-plugin- . ESLint внутренне использует только имя без префикса для поиска правил.
Disabling Rules
Использование комментариев к конфигурации
Чтобы временно отключить предупреждения о правилах в вашем файле,используйте блок-комментарии в следующем формате:
Вы также можете отключить или включить предупреждения для определенных правил:
/* eslint-disable */ block comment at the top of the file: --> Чтобы отключить предупреждения правил во всем файле, поместите комментарий /* eslint-disable */ block вверху файла:
Также можно отключить или включить определенные правила для всего файла:
Чтобы отключить все правила на конкретной строке,используйте комментарий в виде строки или блока в одном из следующих форматов:
Чтобы отключить конкретное правило на конкретной строке:
Чтобы отключить несколько правил на определенной строке:
eslint-plugin-example 's rule-name rule, combine the plugin's name ( example ) and the rule's name ( rule-name ) into example/rule-name : --> Все вышеперечисленные методы также работают для правил плагинов. Например, чтобы отключить eslint-plugin-example «s rule-name правило, сочетают имя плагина ( example ) и имя правила ( rule-name ) в example/rule-name :
- characters. For example: --> Комментарии к конфигурации могут включать описания, объясняющие, почему этот комментарий необходим. Описание должно идти после конфигурации и должно отделяться от конфигурации двумя или более последовательными символами - . Например:
Примечание. Комментарии, отключающие предупреждения для части файла, говорят ESLint не сообщать о нарушениях правил для отключенного кода. ESLint по-прежнему анализирует весь файл, поэтому отключенный код по-прежнему должен быть синтаксически корректным JavaScript.
Использование конфигурационных файлов
overrides key along with a files key. For example: --> Чтобы отключить правила внутри файла конфигурации для группы файлов, используйте ключ overrides вместе с ключом files . Например:
Отключение онлайн Комментарии
noInlineConfig setting. For example: --> Чтобы отключить все встроенные комментарии к конфигурации, используйте параметр noInlineConfig . Например:
Этот параметр аналогичен параметру CLI --no-inline-config .
eslint-disable comments --> Сообщить о неиспользованных комментариях eslint-disable
eslint-disable comments, use the reportUnusedDisableDirectives setting. For example: --> Чтобы сообщить о неиспользованных комментариях eslint-disable , используйте параметр reportUnusedDisableDirectives . Например:
"warn" severity). --> Этот параметр аналогичен параметру интерфейса командной строки --report-unused-disable-directives , но не дает сбоев при линтинге (сообщает о важности "warn" ).
Можно ли отключить правило eslint для всего файла? Нечто такое как:
(Аналогично eslint-disable-line.) Мне часто случается, что в определенном файле я нарушаю определенное правило во многих местах, которое считается нормальным для этого файла, но я не хочу отключать Правило для всего проекта, и я не хочу отключить другие правила для этого конкретного файла.
Вы можете добавить правило в качестве первой строки файла следующим образом: / * eslint no-use-before-define: 2 * /Вы можете отключить / изменить определенное правило для файла, поместив конфигурацию вверху файла.
Есть ли способ поместить правило, .eslintrc которое принудительно применяет все специфичные для файла правила, подобные этому, вверху файла? @ Джереми, посмотри на мой ответ. Вам просто нужно добавить .eslintignore файл в корневой каталог вашего проекта. Как насчет html или ejs-файла, который, кажется, не работает .eslintignore и /* eslint no-use-before-define: 0 */ // --> OFF тоже? Возможно ли выполнить несколько игнорирований на одной строке? Я попытался / * eslint-disable rule-name * /, и это сработалоЧтобы отключить определенное правило для файла:
Обратите внимание, что в eslint есть ошибка, когда однострочный комментарий не будет работать -
Это отключит все правила eslint в этом блоке, а не только те, которые no-use-before-define намеревались игнорировать По сути, это и есть вся идея. Вопрос: «Можно ли отключить правило eslint для всего файла ?» @Wahome "Можно ли отключить правило eslint для всего файла?" Слово правило в единственном числе . Ваш ответ отключает все правила множественного числа. в описании он упомянул, что он хочет что-то вроде отключения определенного правила - прочитайте еще раз вопрос! Это правда, это не относится ко всему вопросу, но все же является полезным ответом, так как эта тема - лучший результат, когда гуглится «eslint ignore file»Вы можете указать ESLint игнорировать определенные файлы и каталоги , создав .eslintignore файл в корневом каталоге вашего проекта:
.eslintignore
Шаблоны игнорирования ведут себя согласно .gitignore спецификации. (Не забудьте перезапустить ваш редактор.)
Можно ли игнорировать только определенные правила в этом файле? Я бы сказал выше, но мой ответ ниже имеет меньшую оценку: D Очень хорошо! Вы также можете рекурсивно добавлять файлы в каталоги, подкаталоги, подкаталоги, используя **. Например: spec/javascripts/**/*.js . Идеальный - это особенно полезно для файлов, которые автоматически генерируются и часто изменяются (например, aws-exports.js, если вы используете AWS Amplify или MobileHub)Вы также можете отключить / включить правило следующим образом:
Подобно тому, eslint-disable-line как упомянуто в вопросе. Это может быть лучшим способом, если вы не хотите восстанавливать сложную конфигурацию правил при ее повторном включении.
Я предпочитаю этот, потому что он восстанавливает уровень (предупреждение, ошибка), который я определил в моей конфигурации eslint. Это решение, которое сработало для меня. Выключение и включение правила не сработало.Исходя из количества правил, которые вы хотите игнорировать (Все или Некоторые), и объема его отключения (Строка (и), Файл (ы), Везде), мы имеем 2 × 3 = 6 случаев.
1) Отключение «Все правила»
Случай 1.1: Вы хотите отключить «Все правила» для «Одна или несколько линий»
Случай 1.2: Вы хотите отключить «Все правила» для «Один файл»
Случай 1.3: Вы хотите отключить «Все правила» для «Некоторые файлы»
Есть 3 способа сделать это:
- Вы можете пойти с 1.2 и добавить /* eslint-disable */ поверх файлов, один за другим.
- Вы можете поместить имя файла (ов) в .eslintignore . Это хорошо работает, особенно если у вас есть путь, который вы хотите игнорировать. (например apidoc/** )
- С другой стороны , если вы не хотите иметь отдельный .eslintignore файл, вы можете добавить "eslintIgnore": ["file1.js", "file2.js"] в соответствии с package.json инструкциями здесь .
Случай 2.1: Вы хотите отключить «Некоторые правила» для «Одна или несколько линий»
Случай 2.2: Вы хотите отключить «Некоторые правила» для «Один файл»
Это менее просто. Вы должны поместить их в "excludedFiles" объект "overrides" вашего раздела, .eslintrc как указано здесь .
Можно ли отключить правило eslint для всего файла? Что-то вроде:
(Аналогично eslint-disable-line.) Со мной довольно часто случается, что в определенном файле я нарушаю определенное правило во многих местах, которое считается нормальным для этого файла, но я не хочу отключать правило для всего проекта, и я не хочу отключать другие правила для этого конкретного файла.
Вы можете отключить / изменить определенное правило для файла, поместив настройки в начало файла.
- 13 Есть ли способ ввести правило <?php .eslintrc это заставляет все конкретный файл такие правила в начало файла?
- 12 @ Джереми, посмотри мой ответ. Вам просто нужно добавить .eslintignore в корневой каталог вашего проекта.
- Ницца! Видел некоторые ответы JSON-y, плавающие вокруг, которые, похоже, не работали для отключения ошибок без верблюжьего регистра, но это ( /* eslint camelcase: 0 */ ) помогло (используя eslint через standard.js)
- 4 Я попробовал / * eslint-disable rule-name * /, и это сработало
- : 1 делает это предупреждение вместо ошибки
Чтобы отключить определенное правило для файла:
Обратите внимание, что в eslint есть ошибка, когда однострочный комментарий не работает -
Отметьте этот пост
- 30 Это отключит все правила eslint в этом блоке, а не только одно. no-use-before-define предназначен для игнорирования
- 13 По сути, в этом вся идея. Вопрос в том, можно ли отключить правило eslint для весь файл? '
- 28 @Wahome "Можно ли отключить eslint правило для всего файла? "Правило слова единственное число. Ваш ответ отключает все правила множественное число.
- 8 в описании он упомянул, что хочет что-то вроде отключения определенного правила - прочтите вопрос еще раз!
- 5 Это правда, это не решает весь вопрос, но все же полезный ответ, поскольку этот поток является лучшим результатом при поиске в Google "eslint ignore file"
Вы можете указать ESLint игнорировать определенные файлы и каталоги, создав .eslintignore файл в корневом каталоге вашего проекта:
.eslintignore
Шаблоны игнорирования ведут себя в соответствии с .gitignore Спецификация. (Не забудьте перезапустить редактор.)
- 13 Можно ли игнорировать только определенные правила в этом файле?
- 2 Очень красиво! Вы также можете добавлять файлы в каталоги, подкаталоги, подкаталоги рекурсивным способом, используя **. Например: spec/javascripts/**/*.js .
- Идеально - это особенно полезно для файлов, которые автоматически создаются и часто меняются (например, aws-exports.js, если вы используете AWS Amplify или MobileHub).
- Это все еще дает предупреждение
- @ dan-klasson Это неверно. Я использовал этот подход много лет. Если вы не имеете в виду случай, когда вы явно передаете файл в команду eslint, и она предупреждает вас, что вы это проигнорировали. Но в большинстве случаев вы указываете каталог, например eslint . или же eslint src/ . Таким образом, вы НЕ увидите предупреждений об игнорируемых файлах.
Вы также можете отключить / включить такое правило:
Похожий на eslint-disable-line как упоминалось в вопросе. Это может быть лучший метод, если вы не хотите восстанавливать сложную конфигурацию правила при ее повторном включении.
- Я предпочитаю этот, потому что он восстанавливает уровень (предупреждение, ошибка), который я определил в моей конфигурации eslint.
- Это решение, которое сработало для меня. Отключение и включение правила не помогло.
1) Отключение "Все правила"
Это можно сделать двумя способами:
- Положить /* eslint-disable-line */ на конец строки (ей),
- или же /* eslint-disable-next-line */ правильно перед линией.
- Поместите комментарий /* eslint-disable */ вверху файла.
Случай 1.3: вы хотите отключить "Все правила" для "Некоторые файлы"
Вы можете сделать это тремя способами:
- Вы можете пойти с 1.2 и добавить /* eslint-disable */ поверх файлов, один за другим.
- Вы можете указать имена файлов в .eslintignore . Это хорошо работает, особенно если у вас есть путь что вы хотите, чтобы вас игнорировали. (например. apidoc/** )
- В качестве альтернативы, если вы не хотите иметь отдельный .eslintignore файл, вы можете добавить 'eslintIgnore': ['file1.js', 'file2.js'] в package.json как указано здесь.
2) Отключение "некоторых правил"
Это можно сделать двумя способами:
Вы можете поставить /* eslint-disable-line quotes */ (заменить quotes с вашими правилами) в конце строки (строк),
или же /* eslint-disable-next-line no-alert, quotes, semi */ перед строкой.
- Положите /* eslint-disable no-use-before-define */ комментарий вверху файла.
Больше примеров здесь.
Случай 2.3: вы хотите отключить "Некоторые правила" для "Некоторые файлы"
- Он не отвечает на вопрос OP о конкретном файле.
- 3 Отличная альтернатива хранению в файле.
- 12 Чрезвычайно недооцененный ответ!
- 2 Отлично работает! ИМХО, это должен быть принятый ответ. Этот способ остается в файле eslintrc (сохраняет исходные файлы в чистоте) и может переопределить поведение определенных правил для определенных файлов. +1
Чтобы временно отключить предупреждения правил в вашем файле, используйте комментарии блока в следующем формате:
Это отключит ESLint до тех пор, пока
Вы можете прочитать больше по этой теме здесь.
Принятый ответ у меня не сработал (может быть, другая версия eslint . Я использую eslint v3.19.0 ), но нашел решение со следующим .
Поместите следующее в верхнюю часть файла
Это отключит правило для всего файла
Это отключит все правила eslint в блоке.
- 5 Это отключит все правила eslint в этом блоке, а не только одно. no-use-before-define предназначен для игнорирования
- Это мне помогло, спасибо! Также рассмотрите этот ответ на вопрос, отключение всех правил также отключит предполагаемое правило
Вы можете просто поместить это, например, в начало файла:
вы можете настроить свойство eslint overrides, чтобы отключить определенные правила для файлов, которые соответствуют шаблону glob, как показано ниже.
Здесь я хочу выключить no-duplicate-string Правило для проверки всех файлов.
На сегодняшний день ответ у меня не работает, но помещаю это в начало файла работает:
Важно знать, что, по крайней мере, в моем случае, тип комментария имеет значение. Предыдущий комментарий у меня работает, но следующий не будет работать:
Чтобы отключить определенные правила для файлов внутри папок, вам необходимо использовать 'overrides' ключ твоего .eslintrc файл конфигурации.
Например, если вы хотите удалить следующие правила:
- no-use-before-define
- max-lines-per-function
Для всех файлов в следующем основном каталоге:
Вы можете добавить это в свой .eslintrc файл.
Обратите внимание, что я использовал ** внутри spec/**/*.js шарик, что означает, что я рекурсивно ищу все подпапки внутри папка называется spec и выбрав все файлы, заканчивающиеся на js чтобы удалить из них желаемые правила.
Просто и эффективно.
Eslint 6.7.0 предоставил ignorePatterns, чтобы записать его в .eslintrc.json, как в этом примере:
Вы можете отключить определенное правило для файла, используя /*eslint [ ]*/
/* eslint no-console: 'off', no-mixed-operators: 'off' */
- Это отлично сработало, если нужно отключить одно правило только для одного полного файла.
Просто создайте пустой файл .eslintignore в корне вашего проекта введите путь к файлу, который вы хотите игнорировать.
Поскольку JavaScript — это интерпретируемый язык, ошибки, допущенные в коде, выявляются во время его выполнения. Чтобы увидеть ошибки до запуска кода, используется инструмент, который называется линтер. Для поиска ошибок применяется статический анализ и используются особые правила.
Что такое ESLint
ESLint — это инструмент для поиска и исправления ошибок в коде JavaScript и ECMAScript. Он находит синтаксические ошибки, проблемы в шаблонах проектирования и отклонения от стиля. Наряду с большим количеством встроенных правил в нем можно использовать собственные правила или готовые плагины с правилами. Благодаря модульной структуре и множеству возможностей настройки можно настроить ESLint именно так, как нужно для вашего проекта.
Как работать с ESLint: шаг за шагом
Перед установкой ESLint нужно установить Node.js с поддержкой SSL и npm. Предположим, что вы уже сделали это заранее.
Для начала создайте каталог для проекта и поместите в него файл index.js с таким содержимым:
Затем инициализируйте npm в этом каталоге, если еще этого не сделали:
В результате будет создан файл package.json с параметрами пакета.
Установите ESLint в каталоге проекта. Для этого запустите в терминале следующую команду:
npm install eslint --save-dev
ESLint будет установлен локально. Существует возможность глобальной установки (с помощью команды npm install eslint --global ), но не рекомендуем использовать такой подход. Все модули и совместно используемые файлы конфигурации в любом случае следует устанавливать локально.
Для настройки файла конфигурации выполните следующую команду:
npx eslint --init
Во время выполнения этой команды вам понадобится ответить на несколько вопросов. Предположим, что нам нужно проверять синтаксис, находить проблемы и применять стиль кодирования:
Обозначения, зачем мы используем ESLint
Укажем, что будут использованы модули JavaScript:
Использование модулей JavaScript
В примере мы не используем ни React, ни Vue.js, ни TypeScript:
Отмечаем, что не используем React и Vue.js
Отмечаем, что не используем TypeScript
Предположим, код будет выполняться в браузере:
Указываем, что код будет выполняться в браузере
Укажем, что будем применять инструкции по стилю и выберем Airbnb:
Указываем, что хотим использовать инструкцию по популярным стилям
Для примера выбираем Airbnb
Пусть файл конфигурации будет создан в формате JSON:
В результате в каталоге проекта будет создан файл .eslintrc.json (или с другим расширением — в зависимости от выбранного вами формата).
В нем будет находиться примерно такой код:
Проверяем проект
Теперь можно проверить проект, вызвав линтер для какого-либо файла или каталога. Вызовем eslint , передав в качестве аргумента текущий каталог (обозначенный точкой): node_modules\.bin\eslint .
В результате получим:
На консоли — четыре ошибки и два предупреждения
Мы видим четыре ошибки и два предупреждения с указанием их позиций в файле. Также в таблице приведены описания и указаны нарушенные правила.
Вывод будет таким:
Три ошибки исправлены
Видим, что линтер сам справился с тремя ошибками, а нам оставил остальные. Код в файле изменен:
Обратите внимание: вставлен символ новой строки и убраны пробелы в скобках.
Rules: правила проверки кода
В конфигурации примера выше мы использовали имеющиеся правила проверки. Но можно добавить и свои правила. В файле .eslintrc.json есть раздел rules .
Если при создании проекта указать не имеющийся набор инструкций, а задать свои правила (выбрав пункт Answer questins about your style), то в разделе правил в файле .eslintrc.json можно будет увидеть примерно такие правила:
Структура правила проста. Рассмотрим первое правило из приведенного выше примера.
Слово indent — это имя правила. Первый элемент в списке обозначает уровень ошибки и может принимать следующие значения:
- off или 0 — выключить правило;
- warn или 1 — включить правило как предупреждение (не влияет на код выхода);
- error или 2 — включить правило как ошибку (с кодом выхода 1).
Второй элемент в этом случае означает количество пробелов. Второй аргумент зависит от правила.
Итак, приведенные выше правила указывают, что следует использовать отступ в четыре пробела, завершение строк в стиле UNIX, одинарные кавычки и не пропускать точку с запятой.
Правила делятся на несколько категорий. Существуют правила проверки на наличие возможных синтаксических и логических ошибок в коде:
- getter-return (обязательное применение оператора возврата в методах чтения);
- no-setter-return (запрет применения оператора возврата в методах изменения значения);
- no-dupe-args (запрет дублирующихся аргументов в определениях функций).
Есть правила проверки соблюдения передовой практики, например, accessor-pairs (обязательное применение пар методов чтения и изменения значений в объектах и классах).
Правила относительно переменных ( no-unused-vars — запрет на неиспользуемые переменные), стилистические правила ( eol-last — разрешение или запрет символа новой строки в конце файла) и правила для ECMAScript 6 .
Вернемся к коду, немного изменим файл index.js и отправим его на проверку:
Здесь сообщается, что пропущена точка с запятой, используется отступ в два пробела вместо четырех и двойные кавычки вместо одинарных, а в цикле использовано константное условие.
Полный список правил ESLint можно просмотреть по этой ссылке .
Чтобы не вводить одни и те же команды каждый раз, можно в разделе scripts в файле package.json указать сценарий для запуска eslint . Он может выглядеть так:
Вывод будет примерно таким:
Проверку можно отключать как для отдельных строк, так и для нескольких.
Для отключения отдельной строки ее нужно завершить комментарием:
Чтобы отключить проверку для нескольких строк, перед ними следует вставить комментарий /* eslint-disable */ , а после — /* eslint-enable */ :
Также можно отключить одно или несколько конкретных правил. Для этого в комментарии /* eslint-disable */ их перечисляют через запятую:
/* eslint-disable semi, quotes */
Заключение
ESLint — эффективный инструмент, который можно настраивать и расширять в соответствии с потребностями разных проектов.
ESLint продолжает активно развиваться и интегрируется с Sublime Text 3, Vim, Visual Studio Code, IntelliJ IDEA, Emacs, Eclipse и многими другими средами разработки.
Он играет важную роль, поскольку его обширные возможности дают разработчикам возможность сконцентрировать усилия на разработке, а не на поиске ошибок и несоответствий стилю.
Highload нужны авторы технических текстов. Вы наш человек, если разбираетесь в разработке, знаете языки программирования и умеете просто писать о сложном!
Откликнуться на вакансию можно здесь .
Читайте также: