husky7 + commitlint + lint-staged 记录
LnEoi -husky
在现代前端项目是必不可少的组件了,重构业务项目时依赖都升级到新版,发现 husky
还是在用低版本的,索性升级到最新的。
从 husky5
开始版本有了重大变化,旧的配置方式无法直接使用,需要重新配置一下。
npm install -D husky
检测提交 commit
提交记录是否符合规范需要 commitlint
npm install -D @commitlint/config-conventional @commitlint/cli
检测提交暂存区的代码是否合规需要 lint-staged
npm install -D lint-staged
配置lint-staged在 package.json
文件中添加相关配置
"lint-staged": {
"*.{js,ts}": "eslint --fix"
}
commitlint在项目下新建文件 commitlint.config.js
文件写入配置
module.exports = {
extends: ["@commitlint/config-conventional"],
};
也可以添加自定义配置规则,相关文档 commitlint rules。
husky上面已经配置好了相关依赖,我们需要使用 husky
将他们与实际操作关联起来。
网上及官方文档提供的命令无法在我本机跑起来,有部分命令像是 husky add
只能使用 yarn
执行成功,所以这里主要使用手动添加的方式说明。
在 package.json
中添加新的 scripts
(对应命令:npm set-script prepare "husky install"
)
"scripts": {
"prepare": "husky install"
}
prepare
是 NPM
操作生命周期中的一环,在执行 install
的时候会按生命周期顺序执行: preinstall -> install -> postinstall -> prepublish -> preprepare -> prepare -> postprepare
具体可以查看 npm scripts执行 npm run prepare
,在项目下会生成一个 .husky
文件夹,用户可以在其中配置相关 git hooks
。
在 .husky
下添加一个文件,名称为相关 git hooks
的名称。
添加 pre-commit
文件,写入配置(对应命令:npx husky add .husky/pre-commit "npx lint-staged --allow-empty $1"
)
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged --allow-empty $1
这样就与 lint-staged
关联起来了,在提交代码的时候就会按 lint-staged
配置去检测文件。
添加 commit-msg
文件,写入配置(对应命令:npx husky add .husky/commit-msg "npx commitlint --edit $1"
)
这样在提交时会检查 commit
信息是否符合开发规范
git hooks
中,提交时的钩子有:pre-commit
提交之前执行(git commit --no-verify
可以跳过此阶段) -> prepare-commit-msg
启动提交信息编辑之前 -> commit-msg
填写提交信息之后 -> post-commit
提交过程结束最后。 相关文档 Git Hooks测试最后可以提交一个不规范的文件测试一下,看看配置的钩子是否有正常运行。
旧版升级旧版的升级其实差不多,就是将 package.json
中的配置信息移动到外部文件中,并且添加一个NPM的生命周期。 husky
官方也有提供一个升级工具,可以试一试 husky-4-to-7
Tags 标签
前端githusky扩展阅读
wamp配置局域网访问
2020-09-04 01:12:17 []接口测试工具apipost3.0版本对于流程测试和引用参数变量
2020-09-15 15:12:13 []vs code的使用与常用插件和技巧大全总结
2020-09-17 03:07:47 []学习之apipost3.0文档移动和文档管理教程
2020-09-18 06:19:35 []分享—如何使用apipost模拟手机实现请求发送
2020-09-18 12:15:00 []【分享】apipost如何使用mock测试
2020-09-19 21:59:25 []Apipost使用技巧之分享
2020-09-19 11:44:49 [][分享] 轻松快捷完成领导要求的word格式的接口文档,再也不用因为编写word格式的接口文档而烦恼
2020-09-27 17:35:44 []【分享之】如何做好一个接口测试?
2020-09-28 18:33:39 []【分享之】在接口测试的时候如何获取变量的值
2020-09-30 11:57:38 []加个好友,技术交流
