避免糟糕的 git commit之git hooks

最近项目在研究代码规范问题,想到了在commit前是否可以统一检查下,于是就打开了git hooks的大门。 首先安装2个包:husky和lint-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到远程。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):