«
husky作用

时间:2022-5   


husky作用就是在git执行一些操作的时候触发一些钩子,在钩子处执行一些自己需要的命令,比如代码的eslint校验等。最佳实践一般是校验两处,eslint(代码规范)及commit message规范

先安装husky:

yarn add -D husky

在项目根目录创建.huskyrc配置文件,内容如下:

{  
    "hooks": {    
        "pre-commit": "lint-staged",
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
        }
}

其中pre-commit是commit的钩子,会在commit之前执行下lint-staged命令。commit-msg是提交时message的检测钩子,commit前会执行 commitlint -E HUSKY_GIT_PARAMS命令。这里面的两种命令需要安装两个npm包

一个是lint-staged:

yarn add -D lint-staged

一个是commitlint

yarn add -D @commitlint/{cli,config-conventional}

项目根目录添加lint-staged的配置文件.lintstagedrc,内容如下:

{
    "*.{js,json,css,md}": [    
                            "prettier --write",    
                            "git add"  
    ], 
    "*.{ts,tsx}": [
                    "eslint --fix",
                    "prettier --write",
                    "git add"  
    ],
}

里面涉及到有prettier,eslint命令,对应的npm包也需要单独安装,建议安装到全局。

然后项目根目录继续添加commitlint的配置文件commitlint.config.js,内容如下:

    module.exports = {  extends: ['@commitlint/config-conventional']};

这样,每次执行git commit -m "xxxx"的时候,就会自动检查代码规范,以及检查message格式了,不符合要求则提交失败。如果特殊情况下不需要检测则执行:

git commit -m "xxxx" --no-verify