如果你的团队在维护一个 monorepo,希望子项目各自有独立的钩子配置,同时又不想牺牲速度
prek 为这种场景做了专门设计
它是一个用 Rust 重写的 pre-commit 替代品,单个二进制文件,不依赖 Python 或任何运行时
但完全兼容你现有的 pre-commit 配置和钩子,无需重新编写检查规则
内置的 monorepo 模式允许每个子项目持有独立配置,还集成了 uv 管理 Python 环境
工具链共享机制让 Python、Node.js、Go、Rust 等环境在钩子间复用,减少重复安装
钩子按优先级并行运行,可以把整体执行时间压得更短
速度比原版提升了几倍,磁盘占用也减半
CPython、Apache Airflow、FastAPI 等知名项目已经换上了这套方案
如果你对 pre-commit 的速度不满意,prek 是一个可以直接迁移的高效选项。
GitHub
顯示更多