Skip to main content

commitlint

下载

pnpm add -D lint-staged husky commitlint @commitlint/config-conventional

配置

  1. 先创建.git仓库
git init
  1. package.json添加prepare指令
{ 
"scripts": {
"prepare": "husky install"
}
}

如果 git 目录不在.husky目录同级, 则根据实际情况修改:

{
"scripts": {
"prepare": "cd .. && husky install front/.husky"
}
}
  1. prepare脚本会在执行npm install之后自动执行。执行npm install安装完项目依赖后会执行 husky install命令。

指令

pnpm i

(可选)命令行

npm set-script prepare "husky install" && npm run prepare
  1. 添加git hooks, 创建一条 pre-commit hook
npx husky add .husky/pre-commit "pnpm lint"

执行该命令后,会看到.husky/目录下新增了一个名为pre-commitshell脚本。之后执行git commit命令时会先触发pre-commit这个脚本。 脚本内容:

#!/bin/sh 
. "$(dirname "$0")/_/husky.sh"
pnpm lint
  1. 修改pre-commit脚本, 改成项目所需的指令, 例如ESLint,Stylelint,commitlint检查
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

tsc --noEmit && pnpm stylelint:fix && pnpm dlx lint-staged
  1. 添加commitlint规范

旧版: (windows 可用)

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

新版: (mac 可用)

npx husky add .husky/commit-msg 'npx --no-install --commitlint --edit "$1"'
  1. 配置.commitlintrc .commitlintrc.cjs or .commitlintrc.js or .commitlintrc.config.js
module.exports = {
'extends': ['@commitlint/config-conventional'],
'type-enum': [
2,
'always',
['feat', 'fix', 'perf', 'style', 'docs', 'test', 'refactor', 'build', 'ci', 'chore', 'revert', 'wip', 'workflow', 'types','release'],
],
}
  1. 测试commitlint:
git commit -m "test: 测试commitlint"

参考

  1. 掘金