美文网首页让前端飞Web前端之路
避免糟糕的 git commit之git hooks

避免糟糕的 git commit之git hooks

作者: 嘻哈章鱼小丸子 | 来源:发表于2020-04-29 21:40 被阅读0次

    最近项目在研究代码规范问题,想到了在commit前是否可以统一检查下,于是就打开了git hooks的大门。
    首先安装2个包:huskylint-staged(前提是eslint 已安装配置)。

    • husky:用于注册git hooks,安装完成后会在项目目录下看到所有的hooks。


      git hooks

      每个hook里面的内容是一样的,关键在于hookName的不同。

    • lint-staged:对暂存的git文件运行linters并且不要让💩进入代码库。
      ps:官网的介绍很有意思!可以愉快的码代码了,哈哈哈。


      lint-staged

    安装完成后,在package.json里面增加如下配置:

    pre-commit
    这样每次commit前,都会执行一次对应的 hook 脚本lint-staged,来检查暂存区的src文件夹下的有改动的js和jsx文件,warning为0才可以commit。
    warning为0
    有warning时不能commit,lint会告诉你哪个文件哪一行有问题。
    lint-staged可以配置eslint自动修复("eslint --fix"),但个人觉得还不是很安全,手动修复比较保险。
    还可以配置代码格式化,当然,需要安装prettier,在lint-staged里新增一行配置就ok了,当然,格式化之后需要重新add。
    prettier
    上述配置执行的流程如下:
    1 待提交的代码git add 添加到暂存区;
    2 执行 git commit;
    3 husky注册在git pre-commit的钩子函数被调用,执行lint-staged;
    4 lint-staged 取得所有被提交的文件依次执行写好的任务(ESLint 和 Prettier);
    5 如果有错误(没通过ESlint检查)则停止任务,同时打印错误信息,等待修复后重新进行add和commit;
    6 成功commit,可push到远程。

    相关文章

      网友评论

        本文标题:避免糟糕的 git commit之git hooks

        本文链接:https://www.haomeiwen.com/subject/dmonwhtx.html