Skip to content

Начало работы

Установить

shell
npm install --save-dev husky
shell
pnpm add --save-dev husky
shell
yarn add --dev husky
# Добавить pinst ТОЛЬКО если ваш пакет не является закрытым
yarn add --dev pinst
shell
bun add --dev husky

husky init (рекомендуется)

Команда init упрощает настройку husky в проекте. Она создает скрипт pre-commit в .husky/ и обновляет скрипт prepare в package.json. Изменения можно внести позже в соответствии с вашим рабочим процессом.

shell
npx husky init
shell
pnpm exec husky init
shell
# Из-за особых оговорок и различий с другими менеджерами пакетов,
# обратитесь к разделу «Как использовать».
shell
bunx husky init

Попробуйте

Поздравляем! Вы успешно настроили свой первый Git hook всего одной командой 🎉. Давайте проверим:

shell
git commit -m "Keep calm and commit"
# тестовый скрипт будет запускаться каждый раз при коммите

Несколько слов...

Скриптинг

Хотя большую часть времени вы просто запускаете несколько команд npm run или npx в своих хуках, вы также можете записать их с помощью оболочки POSIX для пользовательских рабочих процессов.

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

shell
# .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again

Это простой, но рабочий пример, проверьте lint-staged, если вам нужно больше.

Отключение хуков

Husky не принудительно использует хуки Git. Его можно отключить глобально (HUSKY=0) или включить, если нужно. См. раздел Как сделать для ручной настройки и дополнительной информации.