
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.3 钩子
有的时候,我们会面临在提交代码之前进行测试的需求,在这种情况下,可以使用下面的方法实现。

但是这样做太麻烦了,有没有更简单的方法呢?答案是,可以通过钩子(Hook)来实现。我们可以在package.json文件所在的某个生命周期事件中运行npm脚本,此机制通常被称为钩子。在node_modules/.hooks/{eventname}中放置一个可执行文件,所有根目录下的package.json文件在运行到该生命周期节点时都会被执行。
这个方法很实用,但用起来很不方便,因此可以使用husky工具更好地解决这一问题,命令如下。

husky新版本的配置是独立的,不再依赖scripts,具体如下。


此时,若提交Git,会触发pre-commmit钩子,自动执行npm test命令。如果测试不通过,则无法提交代码,这对于保证代码质量非常有帮助。