Skip to content

Git hooks

Git Hooks(Git 钩子)是在特定事件触发时执行的脚本。它们允许你在 Git 的不同阶段插入自定义的脚本逻辑,从而在版本控制过程中执行特定的操作。Git 钩子是一种强大的自动化工具,可以帮助你在开发过程中自动执行代码检查、测试、格式化等任务,以确保代码质量和一致性。请注意,使用前必先 git init 初始化项目后方可生效。

lint-staged

安装

bash
npm install -D lint-staged

配置

bash
echo { "*.{js,cjs,mjs,ts,vue}": ["npm run eslint", "npm run prettier"] } > .lintstagedrc.json

支持几种格式的配置文件

  • package.json > lint-staged
  • .lintstagedrc / ..lintstagedrc.json / .lintstagedrc.yml
  • .lintstagedrc.mjs / lint-staged.config.mjs
  • .lintstagedrc.cjs / lint-staged.config.cjs
  • .lintstagedrc.js / lint-staged.config.js

Husky

安装

bash
npm install -D husky

运行

bash
npx husky install

添加

bash
npx husky add .husky/pre-commit

commitlint

根据 commitlint-config-tradition(基于 Angular 约定)的常见类型可以是:

  • build: 构建系统或外部依赖的更改,例如构建过程、依赖库的版本更新等。
  • chore: 一些零碎的变动,通常与构建过程或工具相关的改动。
  • ci: 持续集成配置文件和脚本的修改。
  • docs: 文档相关的变更,如文档的添加、修改、删除。
  • feat: 新功能的添加。
  • fix: 修复 bug。
  • perf: 性能优化。
  • refactor: 代码重构,不是新增功能也不是修复 bug。
  • revert: 撤销之前的提交。
  • style: 代码风格相关的修改,不影响代码逻辑。
  • test: 测试相关的修改。

安装

bash
npm install -D @commitlint/{config-conventional,cli}
#或
npm install -D @commitlint/config-conventional @commitlint/cli

配置

bash
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

支持几种格式的配置文件

  • .commitlintrc
  • .commitlintrc.json
  • .commitlintrc.yaml / .commitlintrc.yml
  • .commitlintrc.js / .commitlintrc.cjs
  • .commitlintrc.ts / .commitlintrc.cts
  • commitlint.config.js / commitlint.config.cjs
  • commitlint.config.ts / commitlint.config.cts
  • package.json > commitlint

添加 hook

bash
npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'

读书、摄影、画画、弹琴、编程