git hooks- pre-commit使用

295 阅读1分钟

使用场景

为了保证代码语法以及格式的一致性,开发人员在本地提交代码的时候需要先进行eslint --fix操作; 所以使用了pre-commit将这一个流程自动化了;

同时调研了了husky和pre-commit这两个工具,区别就是husy的功能更强大,但是pre-commit更轻量级,而后者更符合当时的场景。

使用

1、如果之前未安装过pre-commit或者husky的可以跳过这步

首先需要检查当前项目下的 .git/hooks中是否已存在pre-commit文件如果有 需要删除 需要确保文件夹中关于 pre-commit的文件只有下面图片中的这一个 image.png

2、安装pre-commit

    yarn add pre-commit -D
    
    #npm i pre-commit -D

安装完成之后会在项目中的 .git/hooks 中会多出一个pre-commit和pre=commit.old文件

image.png

3、配置

在packge.json中配置:

  {
  "scripts": {
    "lint": "next lint --fix && git add . && next lint"
  },
  "pre-commit": "lint",
}
       

ps: lint中的命令根据自己项目自行修改,本项目是next13 所以需要使用 next lint --fix; pre-commit就是在commit前会触发该命令,如果要执行多个script,或者其他配置可参考官方文档 pre-commit(npm)