指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

使用husky统一管理git-hooks,实现git commit之前校验eslint,通过才能commit成功:

  • 1.安装husky
npm install husky --save-dev
  • 2.初始化husky
npm run prepare
  
执行完上述安装命令后,将会发生如下几个变化:
在.git同级目录生成.husky文件夹,文件夹下有一个可以编辑的示例pre-commit钩子
在package.json中的scripts中添加了"prepare": "husky install"
更改.git文件下面的config文件,配置项 core.hooksPath 为 .husky
  • 3.创建一个hook
要添加另一个钩子,请使用husky add
如: npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
  • 4.更新hooks脚本
修改.husky文件夹下的hooks脚本即可
  • 5.卸载并还原husky
npm uninstall husky
// 删除.husky文件夹,并且重置core.hooksPath
rm -rf .husky && git config --unset core.hooksPath
  • 6.实战
项目中commit的时候,校验eslint, 警告和错误都不可以commit
  1>安装好 husky 之后,编辑.husky/pre-commit,添加如下内容,而pre-push不用处理,就用默认内容
  npx lint-staged
  2>安装lint-staged,lint-stated就是针对Git暂存区的文件做校验的一个工具。由于在commit之前,我们要提交的文件是在暂存区的,我们可以利用这个工具来校验我们即将commit的文件,而不会校验其它的文件
  npm install lint-staged --save-dev
  3>配置lint-staged
  // package.json
  {
      "lint-staged": {
          "*.{js,ts,vue}": [
            "prettier --write",
            "eslint --cache --fix" // 也可以添加这个参数 eslint --max-warnings 0
          ],
          "*.{scss, md}": [
            "prettier --write"
          ]
       }
  }
  4>提交 commit 的时候,触发了 pre-commit的gitHook, 就执行了里面的脚本 lint-staged, 然后执行了 eslint --max-warnings 0, 最终eslint 0 警告 0 错误就可以commit成功,反之不行