Начало работы
Установить
npm install --save-dev huskypnpm add --save-dev huskyyarn add --dev husky
# Добавить pinst ТОЛЬКО если ваш пакет не является закрытым
yarn add --dev pinstbun add --dev huskyhusky init (рекомендуется)
Команда init упрощает настройку husky в проекте. Она создает скрипт pre-commit в .husky/ и обновляет скрипт prepare в package.json. Изменения можно внести позже в соответствии с вашим рабочим процессом.
npx husky initpnpm 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) или включить, если нужно. См. раздел Как сделать для ручной настройки и дополнительной информации.