共 1 条评论关于"前端规范ESLint之Git工作流规范 Husky + lint-staged + commitlint(下篇)"
最新评论
前面Vue3+Vite2配置Eslint代码风格校验并自动补缺修复已经介绍了如何使用Eslint 和 Stylelint 来规范代码格式。但是有些开发人员会忽视这些错误和警告,直接将代码提交到代码仓库。这就会导致其他其他开发人员pull代码时可能会出现大段代码标红。下面介绍如何使用Husky + Commintlint + Lint-staged打造规范的Git检查工作流,确保我们的代码只有符合规范才能提交到代码仓库
git hook,也就是常说的Git钩子。husky官方文档,Git能在特定的重要动作发生时触发自定义脚本,使用husky可以挂载Git钩子,当我们本地进行git commit或git push等操作前,能够执行其它一些操作,比如进行ESLint检查,如果不通过,就不允许commit或push。其中,提交工作流钩子主要包括了以下四种,我们需要关注pre-commit和commit-msg钩子
我这里安装的Husky是^8.0.0版本,新版本与旧版本的配置会有所不同
1 2 | npx husky-init npm install |
运行完会生成.husky文件夹,并在package.josn里添加如下命令(注意:该配置不是必须的)
1 2 3 4 5 | /* 每次npm install的时候会初始化husky(也就是.husky/_目录),保证了新人进入项目,husky是能够正常运行的,但它会缺失自定义配置的文件pre-commit等 所以实际一般我们会把.husky文件夹传到git仓库,这样大家拉到的配置都是一样的 */ "prepare": "husky install" |
1 2 3 4 | # mac npx husky add .husky/pre-commit 'npx lint-staged' # win npx husky add .husky/pre-commit // windows系统直接写入可能失败,需要手动添加下面命令到该文件 |
在.husky文件夹下默认就有了一个pre-commit文件,这个文件是用来定义git commit之前应该执行什么命令,注意,该文件不是普通文本文件,必须通过上面命令生成,而不要手动去添加,win系统手动将下面代码复制到pre-commit文件中
1 2 3 4 | #!/usr/bin/env sh . "$(dirname "$0")/_/husky.sh" npx lint-staged |
默认情况下上面的命令会对所有的代码进行校验,这无疑是非常浪费时间的。这时候我们需要借助lint-staged(^13.0.3)来对暂存的 git 文件运行校验
1 | npm install lint-staged -D |
在package.json里添加如下命令代码
1 2 3 4 5 6 7 8 | "lint-staged": { "src/**/*.{js,vue,jsx,ts,tsx}": [ "npm run lint" ], "src/**/*.{scss,css,vue,less,html}": [ "npm run lint" ] } |
也可以通过在根目录下创建.lintstagedrc文件,并在package.json > scripts下添加命令"lint-staged": "lint-staged",该方式自行研究,个人认为直接写在package.json下更直观
在多人协作的背景下,git 仓库和 workflow 的作用很重要。而对于 commit 提
上一篇:前端规范ESLint之Git工作流规范 Husky + lint-staged + commitlint(上篇)
最新评论
支付宝扫一扫打赏
微信扫一扫打赏
虽然不是非常懂,但了解了