学习React和Git Hooks的乐趣

69 阅读1分钟

在我的软件开发生涯中,有一个话题让我越来越兴奋,那就是质量!在我的职业生涯中,我对质量的关注度越来越高。也许我已经被烧伤太多次了。唉,我决定测试使用husky 包将git钩子添加到一个React项目。我的目标是让它在提交代码或推送到git仓库之前,必须运行eslint linter和jest 测试套件。

从头开始设置

从零开始的设置是相当简单的。我首先用create-react-app 来启动。

create-react-app fun-with-git-hooks
cd fun-with-git-hooks

接下来,我安装了husky,它声称是 "git hooks made easy"。(准确地说!)。因为它只在开发环境中需要,所以只把它作为开发依赖项安装。

npm install husky --save-dev

实际上,我们最终需要一个额外的开发依赖,叫做cross-env ,它将允许我们在当前的任何环境中配置一个CI环境变量。

npm install cross-env --save-dev

最后,让我们对我们的package.json 文件做一些修改,以完成一些事情。

  • 重新配置jest 测试,以便在持续集成模式下运行
  • 添加一个提示命令(我们不必单独安装eslint ,因为它与create-react-app 一起启动)。
  • 配置我们的husky 钩子,首先进行刷新,然后进行测试
"scripts": {
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "cross-env CI=true react-scripts test --env=jsdom",
  "eject": "react-scripts eject",
  "lint": "eslint src"
},
"husky": {
  "hooks": {
    "pre-commit": "npm run lint && npm test",
    "pre-push": "npm run lint && npm test"
  }
}

就这样了!现在,每当你试图提交或推送你的代码时,如果检查或测试失败,你将被阻止这样做。

质量的胜利!