Спецификация 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
Эта команда выполнит следующие действия:
- Установите npm-модуль адаптера cz-conventional-changelog;
- Сохраните его в
package.jsonвdependenciesилиdevDependencies; - Добавьте ключ
config.commitizenв корень вашегоpackage.json.
Наконец, в файле package.json установите хук Husky для запуска Commitzen по команде commit
"husky": {
"hooks": {
"prepare-commit-msg": "exec < /dev/tty && npx cz --hook || true".
}
}
Вот и все, вы готовы. Внесите изменения в свой код, запустите git commit и следуйте инструкциям Commitzen.