Spec-Zone.ru › ESLint

Предложить новое правило

ESLint основан на правилах. Большинство времени проекта мы имели более 200 правил, и этот список продолжает расти. Однако мы не можем просто принять любое предлагаемое правило, поскольку все правила должны работать согласованно. Поэтому у нас есть некоторые рекомендации относительно того, какие правила могут быть частью ядра ESLint, а какие лучше использовать в качестве пользовательских правил и плагинов.

Примечание: Начиная с 2020 года, мы принимаем только правила, относящиеся к новым функциям ECMAScript. Мы предпочитаем, чтобы новые правила реализовывались в плагинах.

Рекомендации по правилам ядра

В целом, правила ядра ESLint должны быть:

  1. Широко применимы. Распределяемые правила должны быть важны для большого количества разработчиков. Индивидуальные предпочтения для редких паттернов не поддерживаются.
  2. Общие. Правила не могут быть настолько специфичными, что пользователям будет сложно понять, когда их использовать. Правило, как правило, слишком специфично, если для описания того, что оно делает, требуется более двух союзов «и» (если a и b и c и d, то это правило выдает предупреждение).
  3. Атомарные. Правила должны функционировать полностью самостоятельно. Правилам строго запрещено знать о состоянии или наличии других правил.
  4. Уникальные. Два правила не могут генерировать одно и то же предупреждение. Перекрывающиеся правила запутывают конечных пользователей, и ожидается, что правила ядра ESLint не будут перекрываться.
  5. Независимые от библиотек. Правила должны основываться только на средах выполнения JavaScript, а не на конкретных библиотеках или фреймворках. Например, правила ядра не должны применяться только при использовании jQuery, но у нас могут быть некоторые правила, которые применяются только при использовании Node.js (среда выполнения).
  6. Без конфликтов. Ни одно правило не должно напрямую конфликтовать с другим правилом. Например, если у нас есть правило, требующее точки с запятой, то у нас не может быть правила, запрещающего точки с запятой (поэтому у нас есть одно правило, semi, которое выполняет и то, и другое).

Несмотря на эти формальные критерии включения, каждое правило оценивается индивидуально.

Предложение правила

Если вы хотите предложить новое правило, ознакомьтесь с тем, как создать запрос на вытягивание или направить вопрос, заполнив шаблон нового правила.

Нам нужна вся эта информация, чтобы определить, подходит ли правило в качестве кандидата для ядра.

Принятие правила

Для того, чтобы правило было принято в ядро ESLint, оно должно:

  1. Удовлетворять всем критериям, перечисленным в разделе «Рекомендации по правилам ядра»
  2. Иметь члена команды ESLint, который поддерживает включение правила
  3. Относиться к функции ECMAScript, которая достигла стадии 4 в течение последних 12 месяцев

Помните, что у нас более 200 правил, и это сложно как для конечных пользователей, так и для команды ESLint (которая должна их поддерживать). Таким образом, любые новые правила должны считаться очень важными, чтобы рассматриваться для включения в ESLint.

Реализация — ваша ответственность

Команда ESLint не реализует новые правила, предложенные пользователями, потому что у нас ограниченное количество людей, и нам нужно сосредоточиться на общей дорожной карте. После принятия правила вы несете ответственность за его реализацию и документирование. Вы также можете нанять другого человека для помощи в реализации правила. Член команды ESLint, который поддерживал правило, является вашим ресурсом для помощи в прохождении оставшейся части этого процесса.

Альтернатива: создание собственных правил

Помните, что ESLint полностью подключаемый, а это значит, что вы можете создавать собственные правила и распространять их с помощью плагинов. Мы сделали это намеренно, так как не хотим быть хранителями всех возможных правил. Даже если мы не примем правило в ядро, это не значит, что вы не можете получить именно то правило, которое вам нужно. Дополнительную информацию см. в документации по Пользовательским правилам и Создание плагинов.

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/contribute/propose-new-rule

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API