Husky

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: typicode.github.io/husky

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 эффективно работает в структурах с несколькими пакетами, обеспечивая централизованное управление хуками.
Подробнее