在实际的工作中每个人都会有自己独特的代码风格,这本身没有什么不妥。但是在多人合作开发的项目中,就会因为每个人代码风格的不同产生各种的问题。比如因为格式的不同导致的其他人难以阅读代码。比如因为eslint自动修改代码格式导致的,明明只修改了一句话git却是整片的修改,后期相要还原时根本无从入手。

为了避免以上的问题也为了使工程的代码风格统一,以达到方便组内互相阅读代码,互相修改代码,减少产生的bug,git上传记录干净规范的目的。诞生了许许多多的代码风格检测工具。本系列主要介绍目前项目中使用到的前端代码格式化的工具。

本篇主要介绍Husky工具的使用。在代码被提交到Git仓库之前我们可以做一些代码风格检测或者格式化代码的工作。但是做这些工作之前我们需要使用Git提供的钩子,而Husky就是帮我们忘Git钩子中添加方法的工具。

安装

版本要求:Existing hooks are kept. Requires Node >= 10 and Git >= 2.13.0.
使用npm或者yarn安装。

  1. npm install husky --save-dev
  2. or
  3. yarn add husky --dev

注:
1、2020-05-12测试:Husky 4.2.5版本使用yarn安装后无法正常将方法挂载到钩子中,修改为4.2.1版本即可。
2、该工具使用cnpm安装后也存在无法正常将方法挂载到钩子中的问题,可以在cnpm安装成功后rebuild解决。

  1. cnpm install husky --save-dev
  2. npm rebuild

使用配置

  1. // package.json
  2. // npm run lint命令配置示例
  3. "lint": "eslint --fix --ext .js,.vue src",
  1. // package.json
  2. {
  3. "husky": {
  4. "hooks": {
  5. "pre-commit": "npm run lint",
  6. "pre-push": "npm run lint",
  7. }
  8. }
  9. }

Husky也可以使用.huskyrc.huskyrc.json.huskyrc.js配置文件,可以不放在package.json中。

支持的Git hooks

![O6[1~8OQSYPOJ3B3Y2O6}K.png
Husky支持的git hooks,有了Husky的帮着,我们就可以在这些git hooks添加自己的方法来处理代码了。