一、前言最流行的版本管理工具是git,良好的代码规范有助于项目的维护。为了防止一些不规则的代码提交和推送到远程端,我们可以在git命令执行之前使用一些钩子进行检测和拦截。现在大前端主要有两个githook插件:husky(jquery和next.js都用),pre-commit(用antd)。接下来我现在介绍一个githook,然后介绍husky和pre-commit的用法。2.Githooks用过git的都知道git有很多commit、push、rebase等命令。那么这些命令主要是执行.git文件夹下的东西,所以githook目录在.git文件夹下的hooks下,如下图:cd.git/hooksls-l上图是case脚本每个hook,你可以去掉sample,直接写一个shell脚本来执行。前端小伙伴可以使用插件husky和pre-commit让钩子生效。注意:一般情况下,.git是一个隐藏文件。您可以将项目拖入IDE中进行查看。.git文件中的内容一般是不允许手动更改的。3、huskyhusky可以防止非标准代码被commit、push、merge等,先安装huskynpminstallhusky--save-dev或者yarnaddhusky--dev编辑package.json文件,如:{"scripts":{"precommit":"webpack--config./web/webpack.config.js","...":"..."}}当你gitcommit时,precommit中的脚本会被执行,如果没有问题,然后提交。具体情况请参考https://github.com/raoenhui/create-img4.pre-commitpre-commit可以防止非标准代码被commit。没有husky那么全面,但是可以安装pre-push等插件防止对应git操作。我们以pre-commit为例:先安装pre-commitnpminstallpre-commit--save-dev并编辑package.json文件,如:"scripts":{"test":"echo\"报错:我应该失败LOLOLOLOLOL\"&&exit1","foo":"echo\"fooo\"&&exit0","bar":"echo\"bar\"&&exit0"},"pre-commit":["foo","bar","test"]pre-commit的配置项很灵活,也可以这样写:{"precommit":"foo,bar,test""pre-commit":"foo,bar,test""pre-commit":["foo","bar","test"]"precommit":["foo","bar","test"],"precommit":{"run":"foo,bar,test",},"pre-commit":{"run":["foo","bar","test"],},"precommit":{"run":["foo","bar","test"],},"pre-commit":{"run":"foo,bar,test",}}配置好后,执行gitcommit命令,就会执行foo,bar,依次测试以检测改进代码。5.总结一下我们是怎么使用githook插件的,那么我们一般用它做什么?防止commit时,我们可以添加eslint和test命令来检测代码规范::{"precommit":"npmruntag"}具体如何自动打tag可以参考我的另一篇文章https://raoenhui.github.io/nodejs/git/2018/03/30/nodejs%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90tag参考https://raoenhui.github.io/nodejs/git/2018/08/10/preventcommithttps://www。npmjs.com/package/huskyhttps://www.npmjs.com/package/pre-commithttps://www.jianshu.com/p/072a96633479编码愉快..:)
