git commit提交代码前检测

git作为目前最流行的版本管理工具,代码的良好规范有助于项目的维护,我们可以在执行一些git钩子之前检测代码的规范性。目前,前端主流的两大钩子插件分别是pre-commithusky。首先,我将介绍git钩子,然后介绍两种钩子插件的使用。

1、git钩子

我们在使用git管理代码时经常会用到git commit、git push、git rebase等等,这些命令都是管理代码过程中的某种状态,也就是钩子。我们可以在./git/hooks目录中查看钩子列表。

cd ./git/hooks
ls -l

2.png

2、pre-commit

安装

npm i -D pre-commit

package.json中配置使用,pre-commit配置非常灵活

{
  "name": "demo7",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "eslint": "eslint src"
  },
  "pre-commit": [
    "eslint"
  ],
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "eslint": "^6.6.0",
    "pre-commit": "^1.2.2"
  }
}

当执行git commit时将会自动检测代码规范
3.png

详情参考:
https://www.npmjs.com/package/pre-commit

3、husky

安装

npm i -D husky

配置

{
  "name": "demo7",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "eslint": "eslint --ext .js src"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run eslint" // 这里要使用npm run
    }
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "eslint": "^6.6.0",
    "husky": "^3.0.9",
    "pre-commit": "^1.2.2"
  }
}

执行git commit结果:
4.png

详情参考:
https://www.npmjs.com/package/husky

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章