Настройка pre-commit хуков с помощью husky для автоматизации git-процессов

Что такое pre-commit хуки и зачем они нужны?

Когда вы работаете в команде над одним проектом, важно, чтобы код оставался чистым, проверенным и соответствовал стандартам. Именно здесь в игру вступают pre-commit хуки — это автоматические проверки, которые запускаются до того, как изменения попадут в репозиторий.

Обычно такие хуки проверяют:

- форматирование кода
- ошибки линтинга
- прохождение тестов
- наличие забытых console.log или TODO

Если хоть одна проверка провалится, коммит не произойдёт. Это экономит нервы всей команде.

Почему именно Husky?

Как настроить pre-commit хуки с помощью Husky - иллюстрация

До 2020 года разработчики часто писали хуки вручную, используя shell-скрипты или инструменты вроде `pre-commit` на Python. Это работало, но плохо масштабировалось и было сложно поддерживать.

Husky стал прорывом. Он позволил легко добавлять Git-хуки в JavaScript/TypeScript-проекты с минимальной настройкой. А с версии 7.x (вышедшей в 2023 году) он ещё и упростился: теперь хуки настраиваются через обычные bash-файлы в `.husky/`, без лишней магии.

Минимальные требования для работы с Husky

Перед тем как погрузиться в настройку, убедитесь, что у вас есть:

- Node.js (версии 14 и выше)
- Git (естественно)
- NPM или Yarn
- Инициализированный Git-репозиторий

Без этого Husky не сможет интегрироваться в ваш проект.

Инструкция по настройке Husky хуков в 2025 году

Давайте по шагам разберём, как использовать Husky для pre-commit хуков:

  1. Установите Husky как dev-зависимость

```bash
npm install husky --save-dev
```

  1. Активируйте Husky в проекте

```bash
npx husky init
```

Эта команда создаст папку `.husky/` и добавит первый хук — `pre-commit` — с примером команды.

  1. Настройте ваш `pre-commit` хук

В файле `.husky/pre-commit` замените содержимое на нужные вам команды. Например:

```bash
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run lint
npm test
```

Теперь при каждом коммите будут запускаться линтер и тесты. Если что-то пойдёт не так — коммит отклонится.

Дополнительные советы по использованию Husky

Чтобы получить максимум от Husky, используйте его вместе с другими инструментами:

- Lint-staged — позволяет запускать линтеры только на изменённых файлах
- Commitlint — проверяет формат сообщений коммита
- Pretty-quick — автоматически форматирует код с помощью Prettier

Добавим lint-staged для примера:

```bash
npm install lint-staged --save-dev
```

В `package.json`:

```json
"lint-staged": {
"*.js": ["eslint --fix", "git add"]
}
```

И в `.husky/pre-commit`:

```bash
npx lint-staged
```

Это ускорит работу, особенно в больших проектах, где полный линтинг может занять минуты.

Что изменилось в 2025 году?

Как настроить pre-commit хуки с помощью Husky - иллюстрация

С момента появления Husky в 2017 году он прошёл длинный путь: от сложного CLI-инструмента до лёгкого и понятного способа контроля качества кода. В 2025 году настройка pre-commit хуков Husky стала де-факто стандартом во многих фронтенд-командах.

Ключевые изменения последних лет:

- Отказ от `husky.config.js` в пользу bash-хуков в `.husky/`
- Совместимость с monorepo-архитектурой через Nx и Turborepo
- Улучшенная интеграция с GitHub Actions и CI/CD пайплайнами

Если вы всё ещё не используете pre-commit хуки с Husky — самое время начать.

Типичные ошибки при настройке

Настройка кажется простой, но есть нюансы. Вот на что стоит обратить внимание:

- Git не инициализирован — Husky не заработает без `git init`
- Хуки не исполняемые — убедитесь, что у скриптов есть права на исполнение (`chmod +x .husky/pre-commit`)
- Команды не возвращают ошибки — если в скрипте нет `exit 1` при ошибке, хук не остановит коммит
- Работа через GUI-клиенты Git — не все из них корректно обрабатывают хуки

Проверяйте поведение хуков через терминал, чтобы убедиться, что всё работает как надо.

Заключение

Как настроить pre-commit хуки с помощью Husky - иллюстрация

Инструкция по настройке Husky хуков не требует много времени, но даёт сильный контроль над качеством коммитов. Это особенно полезно, когда в проекте работает несколько человек и важно соблюдать единые правила.

Если вы задаётесь вопросом, как использовать Husky для pre-commit, просто следуйте шагам выше. Настройка займёт 10 минут, но избавит от десятков часов отлова ошибок в будущем.

Пусть Husky работает за вас — и пусть ваша кодовая база останется чистой, как слеза.

Прокрутить вверх