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