关于husky8.0 与 4.0的配置

husky的场景使用很多,一般大多场景是在配置git commit 命令拦截hook, 校验 commit-msg 格式规范。以下环境默认:git >= 2.27.0, node >=14

1、安装huskey@8.0.1

bash 复制代码
npm install --save-dev husky@8.0.1

2、初始化配置文件

  • 在package.json scripts 属性中添加命令并保存:
javascript 复制代码
"scripts": {
	"prepare": "npx husky install"
}
  • 在控制台输入:npm run prepare 初始化 husky, 则在工程根目录创建.husky目录 ,如下图:
  • 初始化commit-msg函数配置文件
bash 复制代码
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

在./husky/commit-msg文件中生成

bash 复制代码
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx --no-install commitlint --edit $1
  • 初始化pre-commit函数配置文件
bash 复制代码
npx husky add .husky/pre-commit "npx lint-staged"
  • 在./husky/pre-commit文件中生成
bash 复制代码
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged

以上: 钩子函数已经配置完毕, 执行 git commit 命令之后,会被拦截开始执行./husky/下 pre-commit、commit-msg 配置文件中脚本

3、配置自定义的git commit-msg格式规范

  • commitlint 提交校验安装配置

    bash 复制代码
    npm install --save-dev @commitlint/cli@17.0.2 @commitlint/config-conventional@17.0.2
  • 在工程目录创建commitlint.config.js文件

javascript 复制代码
'use strict';
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'feat', 
        'fix', 
        'docs', 
        'style', 
        'refactor', 
        'perf', 
        'test', 
        'chore', 
        'revert', 
        'build', 
        "impr", 
        "ci", 
        "jvm", 
        "pom", 
        "apm", 
        "conf", 
        "typo", 
        "wip", 
      ]
    ],
    'type-case': [0],
    'type-empty': [0],
    'scope-empty': [0],
    'scope-case': [0],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never'],
    'header-max-length': [0, 'always', 72]
  }
};

以下是4.0的配置

4、安装huskey@4.3.8

bash 复制代码
npm install --save-dev husky@4.3.8

5、初始化配置文件

  • 在package.json scripts 属性中添加命令并保存:
javascript 复制代码
{
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged",
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  },
}

6、配置自定义的git commit-msg格式规范

  • commitlint 提交校验安装配置
bash 复制代码
npm install --save-dev @commitlint/cli@16.3.0 @commitlint/config-conventional@16.2.4

注意:高版本与低版本的husky有冲突

请检查根目录下.git/config 文件中是否含有高版本husky的字段配置, 若有则注释掉husky的配置

相关推荐
codingandsleeping9 小时前
使用orval自动拉取swagger文档并生成ts接口
前端·javascript
白水清风10 小时前
微前端学习记录(qiankun、wujie、micro-app)
前端·javascript·前端工程化
用户221520442780011 小时前
new、原型和原型链浅析
前端·javascript
阿星做前端11 小时前
coze源码解读: space develop 页面
前端·javascript
叫我小窝吧11 小时前
Promise 的使用
前端·javascript
前端康师傅12 小时前
JavaScript 作用域
前端·javascript
云枫晖12 小时前
JS核心知识-事件循环
前端·javascript
eason_fan13 小时前
Git 大小写敏感性问题:一次组件重命名引发的CI构建失败
前端·javascript
前端付豪14 小时前
1、震惊!99% 前端都没搞懂的 JavaScript 类型细节
前端·javascript·面试
朝与暮14 小时前
js符号(Symbol)
前端·javascript