Files

90 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

# 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
```