配置 git 提交校验规则以及提交前进行代码的校验和修复

git 篇

前言

今日分享的话题是 配置 git 提交校验规则以及提交前进行代码 lint 的校验和修复

  • 🔴 1、我们先了解一下当我们执行 git commit -m 'XXX'的时候,都会执行什么(在安装了 husky 的情况下)

    • 🟢 1.1 我们下载安装 husky 的 3.*版本

      npm install husky -D
      
    • 🟢 1.2 当我们执行如下命令的时候会发生什么?

      git add ./
      git commit -m 'XXX'
      

      当我们执行完 git commit 命令之后(我只里只是说一下大致的执行顺序,git 还有其他 hook)

      1. 首先先会去我们的 package.json 中获取到 pre-commit 钩子的执行命令
      1. 然后把我们这个命令拿到之后会在 husky 包中的 run.js=>lib/runner/index.js 文件中会执行我们的命令
      sh myprecommit.sh
      #里面内容应该就是我们的校验命令
      
      1. 这个命令可能是校验我们代码的规范如:lint-staged
      {
        "lint-staged": {
          "*.scss": [
            "prettier --write",
            "stylelint -s scss --config 你的stylelint文件 --fix",
            "git add"
          ],
          ".{ts,tsx}": [
            "node  你的prettier文件 --write",
            "node  你的eslint文件",
            "git add"
          ]
        }
      }
      
      1. 然后会执行我们 package.json 中的的配置项中的这个配置项中的命令
        ❓:为啥我直接执行那些 shell 命令不行呢会报错?
        💡:所处环境不同,由于一些依赖不是全局安装的,所以无法找到该命令,而你将该脚本写在 package.jons 的 script 中,则 npm 会自动查找本地项目的 node_modules/.bin 目录,并将其添加到临时的 PATH 环境变量中
    • 🟢 1.3 当我们前面的那些校验设置完毕之后,接下来会解析我们的 commit 信息

      首先他会执行我们 pageage.json 中的 hook: commit-msg:"你的命令"

      以下是思路:

      ❓:怎么获取我们的提交信息?
      💡: Husky 库提供的一个环境变量,用于获取 Git 的提交参数


      ❓:写一个自定义正则表达式去匹配这个信息是否正确

      💡
      /^你的正则/.test(commitMsg)
      
      // 如果这个通过则啥也不干没通过则终止退出terminal
      
      

具体操作请看这个内容

https://www.cnblogs.com/gjzsa/p/17735796.html

posted @ 2023-09-15 17:32  郭杰前端开发  阅读(452)  评论(0编辑  收藏  举报
## 希望内容对你有帮助,如果有错误请联系我 q: 1911509826,感谢支持