当前位置: 首页 > 知识库问答 >
问题:

在哈士奇的commit-msg钩子中添加commitlint的正确方法是什么?

施赞
2023-03-14

我有一个有角度的项目,我想在那里强制常规提交。我还没有能够成功地拥有正确的钩子,以防止错误的钩子。

我从本教程开始,教程中提到要将以下内容添加到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"
  }
}

共有1个答案

尉迟宇定
2023-03-14

运行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,它可以工作

委员会文件的这一部分帮助我理解这样做是可以的

希望这能帮助其他遇到同样问题的人!

 类似资料:
  • 我正试图在Android Studio项目中添加库,但我得到了一个错误: 错误:找不到名称为“default”的配置。 我所做的只是遵循堆栈溢出的教程和指南 null 图书馆链接

  • 添加插件钩子有两种方法 添加执行多次的插件钩子 hook($hook, &$params = null, $extra = null) 功能 添加执行多次的插件钩子 参数 $hook: string 钩子名称 $params: boolean 传入参数 $extra: boolean 额外参数 返回 string 插件执行结果 添加只执行一次的插件钩子 hook_one($hook, &$par

  • X1.4.0新增 hook($hook,$param) 功能: 添加钩子 参数: $hook:钩子名称 $param:传入参数,默认为空数组 返回: 无 模板使用: {:hook('footer')} {:hook('sider',array('text'=>'hello ThinkCMF')} 控制器方法里使用: //不带参数 hook('your_hook_name'); //带参数 h

  • 问题内容: 我正在与我的CompSci教授交谈,他建议将所有String 方法编写为: 而不是: 这两行都可以编译,但是我想知道第一种方法的好处是什么?我一直都是后一种方式。错了吗 什么是普通/常规? 问题答案: 第一种方法确保执行比较时不会收到 NullPointerException 。当您尝试在不存在的对象上调用方法时,抛出(发生)此异常。 以下是一些相关的切线:仔细阅读风险自负 不过要注意

  • 问题内容: 我以旧的方式使用Docker和卷容器: 但是现在我通过创建命名卷更改为新方法: 我将此新卷绑定到新的Jenkins容器。我只剩下一个文件夹,其中有我以前的jenkins容器的文件夹。(通过使用)现在,我要用该文件夹的内容填充新的命名卷。 我可以复制该文件夹的内容到吗? 问题答案: 您 可以 数据无疑直接复制到,但这样做你: 依靠对Docker主机的物理访问。如果您正在与远程docker

  • 问题内容: 我正在尝试使用一个使用大量jQuery的Layout / Template的项目。 我已经学会了将模板与ReactJS Project集成在一起,但是,我正在寻找一种可以完全替代jQuery的解决方案。 我的解决方案之一是在内部使用jQuery函数或React函数。 这种方法正确吗?这是正确的方法吗? 我在下面附上一个小例子: 这是我的职能。 问题答案: 这种方法正确吗?这是正确的方法