Об этом проекте
eslint-plugin-react — это набор специфичных для React правил линтинга для ESLint. Он помогает разработчикам соблюдать лучшие практики React, выявлять распространённые ошибки и поддерживать единообразный стиль кода в проектах на React.
Установка проста через npm: npm install eslint eslint-plugin-react --save-dev. Плагин работает как с устаревшей системой конфигурации .eslintrc, так и с новой системой плоской конфигурации eslint.config.js, представленной в ESLint v8.21.0.
Плагин экспортирует несколько общих конфигураций: recommended (обеспечивает соблюдение хороших практик React), all (включает все доступные правила) и jsx-runtime (для нового преобразования JSX в React 17+). Также доступны варианты плоской конфигурации: flat.recommended, flat.all и flat['jsx-runtime']. Эти конфигурации автоматически включают JSX в параметрах парсера.
Конфигурация поддерживает общие настройки для react.pragma, react.fragment, react.version, react.createClass, propWrapperFunctions, componentWrapperFunctions, formComponents и linkComponents. Эти настройки позволяют адаптировать плагин для проектов, использующих MobX observer, styled-components, пользовательские компоненты форм или пользовательские компоненты ссылок.
Плагин включает большое количество правил, охватывающих форматирование JSX (jsx-indent, jsx-curly-spacing, jsx-props-no-multi-spaces), определения компонентов (display-name, function-component-definition), валидацию props (jsx-no-duplicate-props, default-props-match-prop-types), хуки (hook-use-state, forward-ref-uses-ref), доступность (button-has-type, iframe-missing-sandbox), безопасность (jsx-no-target-blank, jsx-no-script-url) и многие другие. Многие правила автоматически исправляются с помощью опции CLI --fix, а некоторые предоставляют предложения по ручному исправлению через интеграции с редакторами.
Список правил включает устаревшие правила, помеченные символом крестика, и плагин сохраняет совместимость как с ESLint v8, так и с v9.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.