husky是什么?用来作什么的?
- husky是一个为 git 客户端增加 hook 的工具,githooks – git使用的工具 (githook在官网的介绍),比如
pre-commit
钩子就会在你执行git commit
的触发。 - 由于钩子可以在
git commit
中触发,所以我们可以在提交到暂缓区时,做一些lint 检查、单元测试、代码美化等操作。
lint-staged是什么?
- 一个仅仅过滤出 Git 代码暂存区文件(被 git add 的文件)的工具
- 对个人要提交的代码的一个规范和约束
- 是一个在 git 暂存文件上(也就是被
git add
的文件)运行已配置的 linter(或其他)任务。lint-staged
总是将所有暂存文件的列表传递给任务。
使用方法
-
husky的安装
npm i husky -D --registry=https://registry.npm.taobao.org 复制代码
husky在安装的过程会在
.git/hooks
中生成一系列的脚本需要主要的是,在安装过程中,你要留意一些安装信息,来看一下是否安装了git的钩子
其次是,当前的最新版本安装似乎有点问题,安装不会给你git的钩子,需要自己修改安装
所以作者我没安装最新的,安装了4.3.8的版本
npm i husky@4.3.8 -D --registry=https://registry.npm.taobao.org 复制代码
这版本,基本安装不会出错的
如果安装成功的话,会出现下列信息
> node husky install husky > setting up git hooks husky > done 复制代码
ok,我们现在假设安装成功了,那么husky为你安装的hooks将会生效。
这样我们就可以在
git commit
的时候去调用pre-commit
钩子的方法,去触发到husky。接着我们还需要在
package.json
文件中做一些配置,配置husky的钩子需要执行的命令"husky": { "hooks": { "pre-commit": "echo "git commit trigger husky pre-commit hook" " } } 复制代码
这个命令会在我们
git commit
的时候,会打印出git commit trigger husky pre-commit hook
,这说明我们看到了pre-commit
执行了
-
lint-staged的安装
npm i lint-staged prettier -D --registry=https://registry.npm.taobao.org 复制代码
安装好依赖之后,在
package.json
文件中做配置"lint-staged": { "src/**/*.{js,vue}": [ "prettier --write", "eslint --fix", "git add" ] }, 复制代码
这里
lint-staged
的配置是:在 git 的待提交的文件中,在 src 目录下的所有.js
.vue
都要执行三条命令。- 第一条命令是将代码进行格式化,用prettier这个代码格式化插件进行代码格式化。
- 第二条命令是将格式化的代码上有eslint问题,进行修复。
- 第三条命令是将处理过的代码重新 add 到 git 中。
这样就将代码进行了规范化,当然业务逻辑那些还需要开发者在里面增加注释了
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END