乐趣区

关于前端:husky7-commitlint-lintstaged-记录

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"}

prepareNPM 操作生命周期中的一环,在执行 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

退出移动版