90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
|
|
# 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
|
||
|
|
```
|