Git Hooks 管理
VUP 使用 Husky 在 Git 流程中自动执行检查。
当前配置
VUP 通过下面的脚本启用 Husky:
json
{
"scripts": {
"prepare": "husky",
"lint-staged": "lint-staged"
}
}执行 pnpm install 后,会通过 prepare 自动安装 hooks。
仓库中的现有 Hooks
当前默认包含:
.husky/pre-commit.husky/pre-push
VUP 的 pre-commit 示例:
bash
# 通过 lint-staged 运行 ESLint + Prettier
pnpm lint-staged
# 重新生成模板使用的 apps 列表
node .husky/scripts/generate-apps-list.js
# 将生成文件加入暂存区
git add .template.config.jsonVUP 的 pre-push 示例:
bash
# 推送前轻量提示
echo "✅ 准备推送到远程仓库..."新增或修改 Hook
直接编辑 .husky/ 下的文件:
bash
# 示例:新增 commit-msg hook
cat > .husky/commit-msg <<'HOOK'
npx commitlint --edit "$1"
HOOK
chmod +x .husky/commit-msg常见实践
pre-commit保持轻量,只检查暂存文件。- 重型检查放到 CI,避免本地提交过慢。
- 命令复杂时抽到脚本文件,避免 hook 文件过长。
故障排查
Hook 没有执行
- 检查执行权限:
chmod +x .husky/* - 重新安装依赖触发
prepare:pnpm install
临时跳过 Hook
bash
# 仅应急使用
git commit --no-verify -m "chore: emergency fix"