husky可以让我们向项目中方便添加git hooks
- 将husky添加到项目的开发依赖中
pnpm add husky -D
- 在packgae.json中添加prepare脚本
"scripts": {
"prepare": "husky install"
},
prepare脚本会在pnpm install之后自动执行。也就是说当我们执行pnpm install安装完项目依赖后会执行 husky install命令,该命令会创建.husky目录并指定该目录为git hooks所在的目录。
- 添加git hooks,运行一下命令创建git hooks
npx husky add .husky/pre-commit "npx lint-staged"
运行完该命令后我们会看到.husky目录下新增了一个名为pre-commit的shell脚本。
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "========= 执行pre-commit操作 ======="
npx lint-staged
在项目中我们会使用commit-msg这个git hook来校验我们commit时添加的备注信息是否符合规范。
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
运行完该命令后我们会看到.husky目录下新增了一个名为commit-msg的shell脚本。
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "========= 执行commit-msg校验 ======="
npx --no-install commitlint --edit "$1"
- 配置完成后,需安装@commitlint/cli和@commitlint/config-conventional两个插件(代码提交检测)
pnpm add @commitlint/cli @commitlint/config-conventional -D
自动化工具的使用
mrm
它可以一键安装基于 JavaScript 项目所需的一切,详细的请参考官方文档。
git init && npx mrm package editorconfig gitignore eslint prettier lint-staged