在npm script中使用git hooks

478 阅读1分钟

git 除了能管理代码版本,还可以在 npm script 里运用。git 在 npm script 的运用主要体现在 pre 和 post 的钩子上。能帮助我们在代码提交(commit)和获取时(push)做一些事情

应用场景

  • 本地仓库配置 pre-commit 和 pre-push,是给要提交的代码做检查;
  • 远程仓库配置 pre-receive,是给拉取下来的代码做检查,以确保符合本地代码规范。

备注:本地开发者偷懒使用 --no-verify(或-n)就可以规避本地代码检查

安装依赖包

npm install husky -D

代码配置

{   
    "scripts": {
        "lint:js": "# 检查 js \n  eslint ./src/**/*.js",
        "test": "# 单元测试 \n cross-env NODE_ENV=test mocha tests/"
    },
    "husky": {
        "hooks": {
            "pre-commit": "npm run lint:js",
            "pre-push": "npm run test"
        }
    },
}

commit 规范

git commit 会触发 husky hook,会执行 npm run lint 校验代码,请务必保证代码的正确性。

commit 信息必须按照规范: type(scope): message 来提交:例如:feat(order): 增加订单详情

如果你提交的代码不满足下面的规范,就会报错。

  • feat: 新功能,升级y位
  • fix: 修复问题
  • docs: 修改文档
  • style: 修改代码格式
  • refactor: 重构代码, 不影响功能
  • perf: 提升性能
  • test: 增加/修改测试用例
  • break: 破坏性变更,升级x位
  • chore: 构建过程或辅助工具的变动