Husky — это инструмент для управления Git-хуками в проектах на JavaScript и Node.js, предназначенный для автоматического выполнения скриптов при определённых событиях Git, таких как pre-commit, pre-push и другие. Он упрощает настройку и использование хуков, позволяя интегрировать проверки качества кода, форматирование, тестирование и другие операции непосредственно в процесс разработки.
Основной задачей Husky является обеспечение автоматического выполнения необходимых скриптов перед выполнением определённых Git-команд. Это помогает предотвратить попадание в репозиторий некорректного или неформатированного кода, а также обеспечивает соблюдение стандартов кодирования и других практик. Husky интегрируется с инструментами, такими как ESLint, Prettier и Jest, позволяя настраивать хуки для различных этапов разработки.
- Поддержка всех 13 клиентских Git-хуков — Husky обеспечивает доступ ко всем стандартным хукам Git, включая
pre-commit,commit-msg,pre-pushи другие. - Лёгкость и быстродействие — размер пакета составляет около 2 КБ (сжато), что обеспечивает быстрое выполнение хуков (приблизительно 1 мс).
- Поддержка различных операционных систем — Husky совместим с macOS, Linux и Windows, а также с графическими интерфейсами Git и менеджерами версий Node.js.
- Гибкость настройки — позволяет создавать хуки, специфичные для определённых веток, использовать POSIX-совместимые оболочки для сложных сценариев и настраивать хуки с учётом особенностей проекта.
- Интеграция с npm — Husky использует скрипт
prepareвpackage.jsonдля автоматической настройки хуков при установке зависимостей, что упрощает настройку для новых участников проекта. - Управление ошибками — предоставляет информативные сообщения об ошибках, что облегчает диагностику и устранение проблем при выполнении хуков.
- Поддержка монорепозиториев — Husky эффективно работает в структурах с несколькими пакетами, обеспечивая централизованное управление хуками.