關於 commitlint, husky, eslint 的具體信息能夠見官網。javascript
commitlint 搭配 husky 的 commit message 鉤子後,每次提交 git 版本信息的時候,會根據配置的規則進行校驗,若不符合規則會 commit 失敗,並提示相應信息。
1. 安裝 commitlint
husky
依賴vue
npm install --save-dev @commitlint/{cli,config-conventional} npm install --save-dev husky@next # 安裝最新版,就不用配置 scripts 腳本了
2. 新建 commitlint.config.js
文件java
module.exports = { extends: ['@commitlint/config-conventional'] };
commitlint.config.js 配置文件能夠添加本身的規則,這裏 @commitlint/config-conventional
提供了官方的規則擴展:webpack
build:主要目的是修改項目構建系統(例如 glup,webpack,rollup 的配置等)的提交 ci:主要目的是修改項目繼續集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交 docs:文檔更新 feat:新增功能 merge:分支合併 Merge branch ? of ? fix:bug 修復 perf:性能, 體驗優化 refactor:重構代碼(既沒有新增功能,也沒有修復 bug) style:不影響程序邏輯的代碼修改(修改空白字符,格式縮進,補全缺失的分號等,沒有改變代碼邏輯) test:新增測試用例或是更新現有測試 revert:回滾某個更早以前的提交 chore:不屬於以上類型的其餘類型
3. 配置 package.json 文件
添加 husky 字段git
"husky": { "hooks": { "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS" } },
4. 測試github
git add . git commit -m "foo: this will fail"
添加 husky 的 pre-commit 的鉤子,husky 會在你每次提交 commit 以前使用 eslint 校驗代碼規範,不符合規則會提交失敗會打印出校驗信息。
添加 husky
字段的配置web
"husky": { "hooks": { "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS", "pre-commit": "eslint \"src/**/*.{js,ts,vue}\"" } },
- 跳過校驗
使用 --no-verify
指令能夠跳過檢驗規則npm
git add . && git commit --no-verify -m "代碼規範強制提交測試"