2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
最近,我将我们的项目从 Husky 迁移到了 Lefthook——差异立竿见影。
🤔 为什么选择 Lefthook?
几个关键原因:
- ⚡ 使用 Go 语言编写 → 执行速度极快
- 🔀 并行执行 → 并发运行任务,而非顺序执行
- 🧩 配置简单且强大 → 减少样板代码,更易于维护
- 🧠 更智能的工作流控制 → 灵活的钩子级别优化
⸻
⏱️ 实际影响(我们的案例)
之前(Husky)
- 预提交(pre-commit)时运行所有检查:
- 代码规范检查(lint)
- 类型检查
- 单元测试
- ⏳ 每次提交约需 17 秒
之后(Lefthook)
- 预提交(pre-commit):
- 仅对暂存文件运行代码规范检查 + Prettier 格式化
- 预推送(pre-push):
- 类型检查 + 单元测试
👉 结果:
- ⏱️ 每次提交快约 2 秒(提升约 10%)
- 💡 开发体验更加流畅(等待时间更少,心流更易保持)
⸻
🧠 核心要点
不要让你的预提交(pre-commit)钩子负担过重。
拆分职责:
- ✅ 快速检查 → 预提交(pre-commit)
- 🔍 重型验证 → 预推送(pre-push)/ 持续集成(CI)
📦 Lefthook 配置示例(简化版)
---
# https://lefthook.dev/configuration/glob_matcher/
glob_matcher: doublestar
# https://lefthook.dev/configuration/assert_lefthook_installed/
assert_lefthook_installed: true
pre-commit:
parallel: true
jobs:
- name: lint
glob: '**/*.{js,jsx,ts,tsx}'
run: pnpm exec eslint --quiet --fix {staged_files}
# https://lefthook.dev/examples/stage_fixed
stage_fixed: true
- name: prettier
glob: '**/*.{js,jsx,ts,tsx,json,md,yml,yaml}'
run: pnpm exec prettier --write --ignore-unknown -- {staged_files}
stage_fixed: true
pre-push:
parallel: true
jobs:
- name: type-check
run: pnpm type-check
- name: test
run: pnpm test
💬 最后总结
如果你的提交感觉缓慢并打断了你的工作流,问题可能不出在你的代码上,而是在你的钩子(hooks)上。
Lefthook 让你在不增加复杂性的前提下,获得性能与控制力。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。