PMO*_*948 7 commit node.js husky
我有一个有角度的项目,我想在其中强制执行常规提交。我未能成功地使用正确的钩子来防止错误的钩子。
我从本教程开始,其中提到将以下内容添加到 package.json:
{
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用(它仍然会导致错误的提交),所以我做了一些研究,发现这篇文章说上面是针对 husky 4 的,对于 husky 5 我应该运行这个命令:
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
Run Code Online (Sandbox Code Playgroud)
据我所知,commitlint 官方文档说以同样的方式进行。但是,当我运行它时,我收到这个奇怪的提示,但它没有执行任何操作:
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]
Run Code Online (Sandbox Code Playgroud)
这只是令人困惑,因为我所写的实际上是在提示的第三行之后。
有没有人经历过这个并可以帮助我理解我需要做什么?
package.json 中的相关部分:
"scripts": {
"postinstall": "husky install"
},
"private": true,
"devDependencies": {
"@commitlint/cli": "^12.1.1",
"@commitlint/config-conventional": "^12.1.1",
"husky": "^6.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
运行时似乎出现了问题,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
Run Code Online (Sandbox Code Playgroud)
2 - 然后我只是替换undefined为 npx --no-install commitlint --edit $1并且它有效
commitlint 文档的这一部分帮助我理解这样做是可以的
希望这可以帮助遇到同样问题的其他人!
| 归档时间: |
|
| 查看次数: |
8792 次 |
| 最近记录: |