Начало работы
Установить
npm install --save-dev husky
pnpm add --save-dev husky
yarn add --dev husky
# Добавить pinst ТОЛЬКО если ваш пакет не является закрытым
yarn add --dev pinst
bun add --dev husky
husky init
(рекомендуется)
Команда init
упрощает настройку husky в проекте. Она создает скрипт pre-commit
в .husky/
и обновляет скрипт prepare
в package.json
. Изменения можно внести позже в соответствии с вашим рабочим процессом.
npx husky init
pnpm exec husky init
# Из-за особых оговорок и различий с другими менеджерами пакетов,
# обратитесь к разделу «Как использовать».
bunx husky init
Попробуйте
Поздравляем! Вы успешно настроили свой первый Git hook всего одной командой 🎉. Давайте проверим:
git commit -m "Keep calm and commit"
# тестовый скрипт будет запускаться каждый раз при коммите
Несколько слов...
Скриптинг
Хотя большую часть времени вы просто запускаете несколько команд npm run
или npx
в своих хуках, вы также можете записать их с помощью оболочки POSIX для пользовательских рабочих процессов.
Например, вот как можно линтинговать подготовленные файлы на каждом коммите, используя всего две строки кода оболочки и без внешней зависимости:
# .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
) или включить, если нужно. См. раздел Как сделать для ручной настройки и дополнительной информации.