← Ко всем open source проектам

Husky

typicode/husky

Husky — инструмент для настройки Git hooks в JavaScript-проектах.

Форки 1,087
Автор typicode
Язык JavaScript
Лицензия MIT
Обновлено 2026-06-27

Что такое Husky

Husky — инструмент управления Git hooks. Husky помогает запускать проверки перед коммитом или отправкой изменений: тесты, линтеры, форматирование и другие команды проекта.

Команда часто вспоминает о форматировании и тестах слишком поздно, когда изменения уже попали в общий репозиторий. Поэтому страница полезна не как короткая карточка, а как разбор того, где проект помогает и какую часть задачи берет на себя.

GitHub-репозиторий проекта появился в 2014 году. Для проекта такого типа это важный контекст: он показывает, как долго вокруг него копились код, обсуждения, примеры и привычки сообщества.

Как появился и зачем нужен

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

Главная идея Husky не в том, чтобы заменить все соседние инструменты. Проект закрывает конкретный участок работы: локальные проверки перед коммитом и отправкой изменений. Чем точнее команда понимает этот участок, тем проще решить, нужен ли он в стеке.

В этом смысле Husky стоит рассматривать через практику: какие данные входят, какие действия выполняются, какой результат получается и кто отвечает за поддержку после первого запуска.

Что внутри репозитория

В репозитории находятся JavaScript-код Husky, CLI-команды, шаблоны hooks, тесты и документация.

Husky создает файлы в `.husky/`, которые Git выполняет в нужные моменты жизненного цикла изменения.

Такая структура важна для сопровождения. Когда проект попадает в реальную систему, ценность дают не только основные функции, но и тесты, понятная конфигурация, выпуск новых версий и возможность отследить изменение поведения.

Как это используют

Его используют в JavaScript- и TypeScript-проектах для запуска линтеров, тестов, проверок сообщений коммитов и форматирования.

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

Хороший первый сценарий для Husky — маленькая проверка на реальных данных или близкой к реальности задаче. Она быстрее показывает ограничения, чем абстрактный просмотр возможностей.

Сильные стороны

Сильная сторона Husky — простая интеграция с Git и npm-скриптами.

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

Еще одно преимущество — понятная точка входа. Даже если проект большой, его можно изучать через один сценарий: установить, повторить пример, поменять одну настройку и проверить результат.

Ограничения

Ограничение в том, что локальные hooks не заменяют серверные проверки и могут быть пропущены пользователем.

Нужно держать проверки быстрыми, документировать обходные случаи и дублировать критичные проверки в CI.

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

Пример

pre-commit через Husky

Пример показывает простую проверку перед коммитом: Husky запускает тесты до записи изменения.

Язык: Bash
npx husky init
echo "npm test" > .husky/pre-commit