如何解决将 commitlint 添加到 husky 的 commit-msg 钩子的正确方法是什么?
我有一个 angular 项目,我想在其中强制执行常规提交。我没能成功地使用正确的钩子来防止错误的钩子。
我从 this tutorial 开始,它说要将以下内容添加到 package.json:
{
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_ParaMS"
}
}
这不起作用(它仍然会导致错误的提交)所以我做了一些研究并发现 this article 那里说上面是针对 husky 4 的,对于 husky 5 我应该运行这个命令:>
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
据我所知,commitlint official docs 说要以同样的方式进行。但是,当我运行它时,我得到了这个奇怪的提示,它什么也没做:
PS C:\...\MyProj> npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
Usage
husky install [dir] (default: .husky)
husky uninstall
husky set|add <file> [cmd]
这只是令人困惑,因为我写的实际上是在提示的第三行之后。
有没有人经历过这个并且可以帮助我理解我需要做什么?
package.json 中的相关部分:
"scripts": {
"postinstall": "husky install"
},"private": true,"devDependencies": {
"@commitlint/cli": "^12.1.1","@commitlint/config-conventional": "^12.1.1","husky": "^6.0.0"
}
}
解决方法
运行 npx husky add .husky/commit-msg 'npx --no-install commitlint --edit $1'
似乎有问题,因为命令部分不止一个词。我发现的一种解决方法是将其分成两部分。
1 - 调用 npx husky add .husky/commit-msg
这在正确的位置创建了一个空/默认文件,内容如下:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
undefined
2 - 然后我只是用 undefined
替换了 npx --no-install commitlint --edit $1
并且它有效
This part of the commitlint docs 帮助我理解这样做是可以的
希望这对遇到相同问题的其他人有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。