Представьте: вы пушите код, а на CI падают тесты из-за неотформатированного файла, который забыли прогнать через линтер. Или сообщение коммита вида 'фикс' — через месяц никто не вспомнит, что менялось. Мы сталкивались с этим на каждом втором проекте за более чем 5 лет работы в веб-разработке. После внедрения Husky в 50 проектах мы сократили время code-review на 30% и уменьшили количество конфликтов слияния вдвое. Средняя экономия времени команды — десятки часов в месяц. Пропущенная ошибка в продакшн может стоить дорого, поэтому автоматизация Git-хуков — не роскошь, а необходимость. Закажите настройку Husky под ключ — мы гарантируем результат.
Что даёт настройка Husky для Git-хуков?
Husky — это менеджер Git-хуков, который запускает произвольные скрипты при событиях: pre-commit, commit-msg, pre-push, prepare-commit-msg. Типичные сценарии — автоматический линтинг, проверка типов, тесты, валидация сообщения коммита. В отличие от CI, Husky ловит ошибки локально до отправки в репозиторий — это быстрее и дешевле: одна настройка экономит 10+ часов в месяц для команды из 5 разработчиков.
| Хук | Событие | Типичное действие | Время выполнения |
|---|---|---|---|
| pre-commit | Перед созданием коммита | Линтинг и форматирование staged-файлов | <1 секунды |
| commit-msg | После ввода сообщения коммита | Проверка формата (Conventional Commits) | <0.5 секунды |
| pre-push | Перед отправкой в удалённый репозиторий | Прогон тестов, typecheck | 1–5 минут |
| prepare-commit-msg | При создании коммита (перед редактором) | Автодобавление номера задачи | <0.5 секунды |
Как Husky предотвращает ошибки при коммите?
Husky работает на уровне Git-событий до того, как изменения попадут в историю. Для pre-commit мы используем lint-staged — это в 5 раз быстрее, чем прогон линтера на всём проекте. А commit-msg хук с commitlint блокирует коммиты с некорректным сообщением еще до сохранения. 90% ошибок линтинга ловятся до коммита.
Как мы настраиваем Husky?
Настройка Husky включает несколько этапов. Вот пошаговое руководство, которое мы используем в каждом проекте:
- Установка Husky, lint-staged и commitlint — одной командой.
- Инициализация Husky — создание директории .husky.
- Настройка pre-commit хука — линтинг staged-файлов.
- Настройка commit-msg хука — валидация сообщений по Conventional Commits.
- Настройка pre-push хука — запуск тестов и typecheck.
- Проверка работоспособности — тестирование каждого хука.
Процесс занимает от 20–30 минут для базовой конфигурации до часа для полного набора.
Установка и базовая конфигурация — полная настройка husky
npm install --save-dev husky lint-staged @commitlint/cli @commitlint/config-conventional npx husky init После init создаётся директория .husky/ с базовым хуком pre-commit и добавляется скрипт "prepare": "husky" в package.json. Скрипт prepare запускается автоматически при npm install — новые участники команды получают хуки без лишних шагов.
Pre-commit хук
.husky/pre-commit:
npx lint-staged Запускает lint-staged — применяет команды (eslint, prettier) только к staged-файлам. Конфигурация — в package.json или отдельном файле lint-staged.config.js.
Commit-msg хук с commitlint
Создаём .husky/commit-msg:
npx --no -- commitlint --edit $1 И commitlint.config.mjs:
export default { extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore', 'revert', 'perf', 'ci']], 'subject-max-length': [2, 'always', 72], 'body-max-line-length': [2, 'always', 100], }, }; Корректный коммит: feat: add user authentication. Некорректный: added stuff — хук заблокирует.
Pre-push хук
Для запуска тестов и typecheck перед пушем: .husky/pre-push:
npm run test:ci npm run typecheck Тесты перед пушем, а не перед каждым коммитом — компромисс между скоростью и надёжностью. Pre-push в 3 раза быстрее полного CI-прогона, так как не включает сборку и деплой.
Что входит в настройку Husky?
- Установка и конфигурация Husky — подключаем нужные хуки.
- Настройка lint-staged — правила для eslint/prettier по staged-файлам.
- Настройка commitlint — правила Conventional Commits.
- Документация — короткая инструкция для команды.
- Тестирование — проверяем, что хуки работают корректно.
- Поддержка — отвечаем на вопросы в течение недели после настройки.
| Способ | Начальная настройка | Скорость при коммите | Защита от ошибок |
|---|---|---|---|
| Вручную (только линтер) | 0 минут | Быстро (без проверок) | Низкая |
| CI после пуша | 10–30 минут | Быстро | Средняя (ошибки видны только в CI) |
| Husky + CI | 60 минут | Быстро (только staged-файлы) | Высокая (ошибки ловятся локально и в CI) |
Свяжитесь с нами, чтобы обсудить детали и получить индивидуальное предложение. Закажите настройку под ключ — мы гарантируем результат. Получите консультацию по внедрению Husky в ваш проект — это бесплатно.







