TLDR: "commit-msg": "commitlint -e -V"
instead of "commitlint -E HUSKY_GIT_PARAMS"
During the last year, I became extremely fond of [commitlint](https://commitlint.js.org)
and the related ecosystem. The ability to enforce a specific commit message format is the cornerstone of my automated releases. Yes, in a perfect world, there would be no need for linters etc. But mistakes happen, especially during crunchtime. A modern front-end development workflow should automate as much chores as possible to relieve the developer form those micro-tasks.
When you followed the commitlint guide, your package.json
implements the git-hook
with this lines:
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
Let's break it down. As soon as a you create a new commit message, the commit-msg git-hook
calls the commitlint
executable. The -E flag
takes husky's own environment variable HUSKY_GIT_PARAMS
and passes it to the executable. HUSKY_GIT_PARAMS
contains the commit message you just created.
A few weeks ago, I used vue-cli
for a small PWA
. While browsing through the setup guide, I stumbled across this line:
@vue/cli-service also installs yorkie, (....) yorkie is a fork of husky and is not compatible with the latter.
I wanted to keep my workflow, so I needed to find a way to pass the latest git commit message to the commitlint
executable without the proprietary HUSKY_GIT_PARAMS
.
Luckily, commitlint cli has another flag, which is exactly what I needed:
--edit, -e read last commit message from the specified file or fallbacks to ./.git/COMMIT_EDITMSG
So, to use yorkie
with commitlint
, I replaced the "husky"
-property with the following "gitHooks"
-property at the package.json
:
"gitHooks": {
"commit-msg": "commitlint -e -V ",
}
Follow me on Twitter: @martinkr and consider to buy me a coffee
Top comments (0)