Как настроить Commitzen с помощью Husky

Как настроить Commitzen с помощью Husky

Спецификация Conventional commits содержит набор правил для создания явной истории коммитов, что облегчает написание автоматизированных инструментов поверх, например, semantic release. Вы можете вручную следовать этому соглашению в своем проекте или использовать инструмент, который поможет вам, например Commitizen.

Есть несколько способов использовать Commitizen в вашем проекте, в этом посте я покажу вам, как настроить его с помощью Husky, чтобы всякий раз, когда вы запускаете git commit, вам предлагалось заполнить все необходимые поля коммита во время коммита.

Для начала установите пакеты Commitzen и Husky:

npm i commitizen husky --save-dev

Далее инициализируйте ваш проект для использования адаптера cz-conventional-changelog

commitizen init cz-conventional-changelog --save-dev --save-exact

Эта команда выполнит следующие действия:

  1. Установите npm-модуль адаптера cz-conventional-changelog;
  2. Сохраните его в package.json в dependencies или devDependencies;
  3. Добавьте ключ config.commitizen в корень вашего package.json.

Наконец, в файле package.json установите хук Husky для запуска Commitzen по команде commit

"husky": {
  "hooks": {
    "prepare-commit-msg": "exec < /dev/tty && npx cz --hook || true".
  }
}

Вот и все, вы готовы. Внесите изменения в свой код, запустите git commit и следуйте инструкциям Commitzen.