在实际的工作中每个人都会有自己独特的代码风格,这本身没有什么不妥。但是在多人合作开发的项目中,就会因为每个人代码风格的不同产生各种的问题。比如因为格式的不同导致的其他人难以阅读代码。比如因为eslint自动修改代码格式导致的,明明只修改了一句话git却是整片的修改,后期相要还原时根本无从入手。
为了避免以上的问题也为了使工程的代码风格统一,以达到方便组内互相阅读代码,互相修改代码,减少产生的bug,git上传记录干净规范的目的。诞生了许许多多的代码风格检测工具。本系列主要介绍目前项目中使用到的前端代码格式化的工具。
本篇主要介绍Husky工具的使用。在代码被提交到Git仓库之前我们可以做一些代码风格检测或者格式化代码的工作。但是做这些工作之前我们需要使用Git提供的钩子,而Husky就是帮我们忘Git钩子中添加方法的工具。
安装
版本要求:Existing hooks are kept. Requires Node >= 10
and Git >= 2.13.0
.
使用npm或者yarn安装。
npm install husky --save-dev
or
yarn add husky --dev
注:
1、2020-05-12测试:Husky 4.2.5版本使用yarn安装后无法正常将方法挂载到钩子中,修改为4.2.1版本即可。
2、该工具使用cnpm安装后也存在无法正常将方法挂载到钩子中的问题,可以在cnpm安装成功后rebuild解决。
cnpm install husky --save-dev
npm rebuild
使用配置
// package.json
// npm run lint命令配置示例
"lint": "eslint --fix --ext .js,.vue src",
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm run lint",
"pre-push": "npm run lint",
}
}
}
Husky也可以使用.huskyrc
,.huskyrc.json
,.huskyrc.js
配置文件,可以不放在package.json
中。
支持的Git hooks
![O6[1~8OQSYPOJ3B3Y2O6}K.png
Husky支持的git hooks,有了Husky的帮着,我们就可以在这些git hooks添加自己的方法来处理代码了。