What
提交代码 (commit) 或者推送代码 (push) 到 git 仓库前,检查代码是否符合规范,若检查不通过,则不予提交。
Why
- 确保团队代码一致性,便于维护和理解。
- 发现潜在的错误,例如分号、引用错误等。
How
以检查 Markdown 文档为示范,用到的工具有:
- typicode/husky:Git hooks made easy
- hustcc/lint-md:Markdown lint
- mysticatea/npm-run-all:Run multiple npm-scripts
例子
项目结构
.├── package.json├── src│ └── doc.md└── yarn.lock
package.json
{"name": "my-doc","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "npm run lint","lint": "run-s lint-md","lint:fix": "run-s lint-md:fix","lint-md": "lint-md ./src","lint-md:fix": "lint-md --fix ./src"},"keywords": [],"author": "","license": "ISC","husky": {"hooks": {"pre-commit": "npm test","pre-push": "npm test"}},"devDependencies": {"husky": "^3.1.0","lint-md-cli": "^0.1.1","npm-run-all": "^4.1.5"}}
解释:
- commit/push 前执行
npm run test lint检查器会批量执行多项检查:检查 markdown、js、ts (如果需要)lint:fix检查器批量修复- 其它针对特定模块的检查器可以这样写
lint-xx然后使用lint批量去执行 lint是自动的,fix是手动的
