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: 构建过程或辅助工具的变动