What

提交代码 (commit) 或者推送代码 (push) 到 git 仓库前,检查代码是否符合规范,若检查不通过,则不予提交。

Why

  • 确保团队代码一致性,便于维护和理解。
  • 发现潜在的错误,例如分号、引用错误等。

How

以检查 Markdown 文档为示范,用到的工具有:

例子

项目结构

  1. .
  2. ├── package.json
  3. ├── src
  4. └── doc.md
  5. └── yarn.lock

package.json

  1. {
  2. "name": "my-doc",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "npm run lint",
  8. "lint": "run-s lint-md",
  9. "lint:fix": "run-s lint-md:fix",
  10. "lint-md": "lint-md ./src",
  11. "lint-md:fix": "lint-md --fix ./src"
  12. },
  13. "keywords": [],
  14. "author": "",
  15. "license": "ISC",
  16. "husky": {
  17. "hooks": {
  18. "pre-commit": "npm test",
  19. "pre-push": "npm test"
  20. }
  21. },
  22. "devDependencies": {
  23. "husky": "^3.1.0",
  24. "lint-md-cli": "^0.1.1",
  25. "npm-run-all": "^4.1.5"
  26. }
  27. }

解释:

  • commit/push 前执行 npm run test
  • lint 检查器会批量执行多项检查:检查 markdown、js、ts (如果需要)
  • lint:fix 检查器批量修复
  • 其它针对特定模块的检查器可以这样写 lint-xx 然后使用 lint 批量去执行
  • lint 是自动的, fix 是手动的

参考