@bpa-dev/react-config
v1.0.4
Published
Конфигурация Eslint для React проектов BPA
Readme
@bpa-dev/react-config
Конфигурация ESLint для React-проектов BPA.
Пакет расширяет @bpa-dev/eslint-config и добавляет правила для JSX/TSX, React Hooks, доступности и CSS Modules.
Что включено
| Плагин | Назначение |
| --- | --- |
| eslint-plugin-react | Базовые правила React и JSX |
| eslint-plugin-react-hooks | Правила хуков (rules-of-hooks, exhaustive-deps) |
| eslint-plugin-jsx-a11y | Доступность в разметке |
| eslint-plugin-react-doctor | Антипаттерны React 19, TanStack Query, производительность |
| eslint-plugin-css-modules-next | Проверка CSS Modules |
Конфигурация рассчитана на ESLint 9 (flat config) и TypeScript 6.
Установка
pnpm add -D @bpa-dev/react-config eslint prettier typescripteslint, prettier и typescript — peer-зависимости. Остальные плагины подтягиваются транзитивно из пакета.
Подключение
Создайте eslint.config.ts в корне проекта:
export { default } from '@bpa-dev/react-config'Или с явным импортом:
import reactConfig from '@bpa-dev/react-config'
export default reactConfigСкрипты lint
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}Расширение конфигурации
Дополнительные правила можно добавить поверх shared-конфига:
import reactConfig from '@bpa-dev/react-config'
import { defineConfig } from 'eslint/config'
export default defineConfig([
...reactConfig,
{
rules: {
'react-doctor/no-barrel-import': 'off'
}
}
])Полный пример package.json
{
"name": "my-react-app",
"private": true,
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
},
"devDependencies": {
"@bpa-dev/react-config": "^1.0.0",
"eslint": "^9.0.0",
"prettier": "^3.0.0",
"typescript": "^7.0.2"
}
}VS Code
Установите расширения:
Добавьте в .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"]
}Лицензия
MIT
