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, которое делает и то и другое).

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

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

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

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

Принять правило

Чтобы правило было принято в ядро 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