feat: Husky pre-push хуки с проверками качества кода

- Добавлен Husky 9 с pre-push хуком
- Проверки: type-check, lint, lint:styles, build:prod
- Новые скрипты: build:prod, build:dev с env переменными
- Обновлен dev скрипт для использования env переменных
- Добавлена документация (.husky/README.md, HUSKY_SETUP.md)
- Обновлен .gitignore для включения .husky/
This commit is contained in:
Ilia Mashkov
2025-11-19 10:26:47 +03:00
parent 1318800f75
commit 4ea641b64e
6 changed files with 231 additions and 3 deletions

89
.husky/README.md Normal file
View File

@@ -0,0 +1,89 @@
# Husky Git Hooks
## Описание
Husky используется для автоматического запуска проверок перед выполнением git операций.
## Настроенные хуки
### pre-push
Запускается автоматически перед `git push` и выполняет следующие проверки:
1. **Проверка типов TypeScript** (`pnpm type-check`)
- Проверяет корректность типов во всех TypeScript файлах
- Использует `tsc --noEmit` (компиляция без генерации файлов)
2. **Проверка ESLint** (`pnpm lint`)
- Проверяет качество кода JavaScript/TypeScript
- Проверяет соблюдение правил для React, Hooks, доступности
3. **Проверка Stylelint** (`pnpm lint:styles`)
- Проверяет качество CSS/SCSS кода
- Проверяет порядок свойств и селекторов
4. **Production сборка** (`pnpm build:prod`)
- Проверяет, что проект успешно собирается для production
- Гарантирует отсутствие ошибок сборки перед push
## Установка
После клонирования репозитория выполните:
```bash
pnpm install
```
Husky автоматически установится благодаря скрипту `prepare` в package.json.
## Пропуск проверок (не рекомендуется)
Если необходимо пропустить проверки (например, для срочного фикса):
```bash
git push --no-verify
```
**Внимание:** Используйте эту опцию только в крайних случаях!
## Ручной запуск проверок
Вы можете запустить все проверки вручную:
```bash
pnpm pre-push
```
Или по отдельности:
```bash
pnpm type-check # Проверка типов
pnpm lint # Проверка ESLint
pnpm lint:styles # Проверка Stylelint
```
## Исправление ошибок
### Автоматическое исправление ESLint
```bash
pnpm lint --fix
```
### Автоматическое исправление Stylelint
```bash
pnpm lint:styles --fix
```
## Отключение хуков
Если нужно временно отключить хуки:
```bash
# Удалить хуки
rm -rf .husky
# Восстановить хуки
pnpm prepare
```