Способы расширения ESLint
ESLint обладает высокой степенью подключаемости и настраиваемости. Существует множество способов расширить функциональность ESLint.
Эта страница объясняет способы расширения ESLint и как эти расширения взаимодействуют друг с другом.
Плагины
Плагины позволяют добавлять собственные пользовательские правила и обработчики в проект ESLint. Вы можете опубликовать плагин в качестве npm-модуля.
Плагины полезны, потому что ваш проект может потребовать некоторые настройки ESLint, которые не включены в основной eslint пакет. Например, если вы используете фронтенд-библиотеку JavaScript, такую как React, или фреймворк, такой как Vue, эти инструменты имеют некоторые функции, для которых требуются пользовательские правила, выходящие за рамки основных правил ESLint.
Часто плагин сочетается с конфигурацией ESLint, которая применяет набор функций из плагина к проекту. Также можно включать конфигурации в плагин.
Например, eslint-plugin-react — это плагин ESLint, который включает правила, специфичные для проектов React. Правила включают в себя такие вещи, как обеспечение согласованного использования циклов жизни компонентов React и требование использования свойств key при рендеринге динамических списков.
Чтобы узнать больше о создании расширений, которые можно включить в плагин, обратитесь к следующей документации:
Чтобы узнать больше о сборке этих расширений в плагин, обратитесь к Плагинам.
Разделяемые конфигурации
Разделяемые конфигурации ESLint — это предварительно определённые конфигурации для ESLint, которые вы можете использовать в своих проектах. Они объединяют правила и другие настройки в npm-пакете. Всё, что вы можете поместить в файл конфигурации, можно поместить в разделяемую конфигурацию.
Вы можете опубликовать разделяемую конфигурацию независимо или в составе плагина.
Например, популярная разделяемая конфигурация — eslint-config-airbnb, которая содержит различные правила, помимо некоторых параметров парсера. Это набор правил для ESLint, предназначенный для соответствия руководству по стилю JavaScript Airbnb JavaScript style guide. Используя eslint-config-airbnb разделяемую конфигурацию, вы можете автоматически применять руководство по стилю Airbnb в своём проекте, не настраивая каждое правило вручную.
Чтобы узнать больше о создании разделяемой конфигурации, обратитесь к Настройке конфигураций.
Пользовательские форматировщики
Пользовательские форматировщики принимают результаты проверки ESLint и выводят результаты в формате, который вы определяете. Пользовательские форматировщики позволяют отображать результаты проверки в формате, который лучше всего подходит для ваших потребностей, будь то в определённом формате файла, определённом стиле отображения или формате, оптимизированном для конкретного инструмента. Вам нужно создавать пользовательский форматировщик только в том случае, если встроенные форматировщики не подходят для вашего случая использования.
Например, пользовательский форматировщик eslint-formatter-gitlab может использоваться для отображения результатов ESLint в отчётах о качестве кода GitLab.
Чтобы узнать больше о создании пользовательского форматировщика, обратитесь к Пользовательским форматировщикам.
Пользовательские парсеры
Пользовательские парсеры ESLint — это способ расширения ESLint для поддержки проверки новых языковых возможностей или пользовательского синтаксиса в вашем коде. Парсер отвечает за преобразование вашего кода в абстрактное синтаксическое дерево (AST), которое затем ESLint может проанализировать и проверить.
ESLint поставляется со встроенным парсером JavaScript (Espree), но пользовательские парсеры позволяют проверять другие языки или расширять возможности проверки встроенного парсера.
Например, пользовательский парсер @typescript-eslint/parser расширяет ESLint для проверки кода TypeScript.
Пользовательские парсеры нельзя включать в плагин, в отличие от других типов расширений.
Чтобы узнать больше о создании пользовательского парсера, обратитесь к Пользовательским парсерам.
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/extend/ways-to-extend