Skip to main content
Photo from unsplash: developerdennis

Git hooks with husky & commitlint

Written on May 19, 2023 by Developer Dennis.

2 min read
––– views


Now that we are using lerna to determine package versions, we need to ensure that all commits follow the proper syntax. We can utilize Husky to add a git hook to the commit command. Head over to your command-line interface, make sure you navigate to the root of the project’s monorepo and install husky as a development dependency as follows:

npm install husky --save-dev;

Install commitlint

Next, you also need to install commitlint to lint commits:

npm install @commitlint/cli --save-dev npm install @commitlint/config-conventional --save-dev

Enable Git hooks

Next, enable Git hooks using the following command:

npx husky install

Adding Commit message Hook

Then, add the commit-msg hook using the following command:

npx husky add .husky/commit-msg 'npx commitlint --edit $1'

Creating the .commitlintrc file

Next, create the .commitlintrc.json file and add the following configuration:

{ "extends": ["@commitlint/config-conventional"] }

Creating the config file

Then, create the commitlint.config.js file and the add:

module.exports = { extends: ['@commitlint/config-conventional'], };

Add a Git commit

Finally, add a Git commit that doesn’t follow the convention:

git commit -a -m "Set up Husky and commitlint"

The operation should be failed with the following message:

⧗ input: Add Husky and commitlint ✖ subject may not be empty [subject-empty] type may not be empty [type-empty] ✖ found 2 problems, 0 warnings Get help: husky - commit-msg hook exited with code 1 (error)

If you run the following commit instead it should work:

git commit -m 'feat: set up husky and commitlint'


We can enhance the releasing process by combining lerna with a few additional utilities and conventions. Thanks to using git hooks with husky and commitlint to ensure that all commits follow the proper syntax.

Tweet this article

Enjoying this post?

Don't miss out 😉. Get an email whenever I post, no spam.

Subscribe Now