我有一个有角度的项目,我想在那里强制常规提交。我还没有能够成功地拥有正确的钩子,以防止错误的钩子。
我从本教程开始,教程中提到要将以下内容添加到package.json中:
{
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
这不起作用(它仍然允许坏的提交),所以我做了一些研究,并找到了这篇文章,它说上面是针对husky 4的,而对于husky 5我应该运行这个命令:
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
据我所知,委员会的官方文件也是这么说的。然而,当我运行它的时候,我得到了这个奇怪的、什么都不做的提示:
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'npx--no-安装commitlint--edit$1'
这在正确的位置创建了一个空/缺省文件,其内容如下:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
undefined
2-然后我将undefined
替换为npx--no-install commitlint--edit$1
,它可以工作
委员会文件的这一部分帮助我理解这样做是可以的
希望这能帮助其他遇到同样问题的人!