commitlint
下载
pnpm add -D lint-staged husky commitlint @commitlint/config-conventional配置
- 先创建
.git仓库
git initpackage.json添加prepare指令
{ "scripts": { "prepare": "husky install" }}如果 git 目录不在
.husky目录同级, 则根据实际情况修改:
{ "scripts": { "prepare": "cd .. && husky install front/.husky" }}- prepare脚本会在执行npm install之后自动执行。执行npm install安装完项目依赖后会执行 husky install命令。
指令
pnpm i(可选)命令行
npm set-script prepare "husky install" && npm run prepare- 添加
git hooks, 创建一条pre-commit hook
npx husky add .husky/pre-commit "pnpm lint"执行该命令后,会看到.husky/目录下新增了一个名为pre-commit的shell脚本。之后执行git commit命令时会先触发pre-commit
这个脚本。
脚本内容:
#!/bin/sh. "$(dirname "$0")/_/husky.sh"pnpm lint- 修改
pre-commit脚本, 改成项目所需的指令, 例如ESLint,Stylelint,commitlint检查
#!/usr/bin/env sh. "$(dirname -- "$0")/_/husky.sh"
tsc --noEmit && pnpm stylelint:fix && pnpm dlx lint-staged- 添加
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"'- 配置
.commitlintrc.commitlintrc.cjsor.commitlintrc.jsor.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'], ],}- 测试
commitlint:
git commit -m "test: 测试commitlint"