Skip to content
Latchkey

pre-commit vs Husky: Qual Gerenciador de Hooks?

O pre-commit é um framework Python com um grande registro de hooks fixados e reutilizáveis; o Husky é um gerenciador de git hooks nativo do Node, popular em projetos JS.

O pre-commit gerencia ambientes de hook isolados e puxa de um grande catálogo de hooks da comunidade fixados por versão, o que o torna forte para repositórios poliglotas e verificações consistentes e reproduzíveis. O Husky é o padrão do ecossistema JavaScript, conectando git hooks com configuração mínima e combinando naturalmente com lint-staged e npm scripts. O pre-commit é agnóstico de linguagem e orientado a registro; o Husky é nativo de JS e leve.

pre-commitHusky
RuntimePythonNode
LinguagensQualquerCentrado em JS
Origem dos hooksRegistro compartilhado, fixadoSeus scripts
Isolamento de ambientePor hookNão
Melhor paraPoliglota, reproduzívelProjetos Node

No CI

O pre-commit é uma ótima escolha para repositórios multilinguagem e para reutilizar hooks padronizados entre projetos, com um modo de CI embutido. O Husky serve a repositórios JS/TS que já usam npm e lint-staged. Ambos rodam localmente, então espelhe as verificações em um job de CI para impô-las independentemente da configuração de cada desenvolvedor.

Acelere

Faça cache dos ambientes de hook (pre-commit) ou do node_modules (Husky) para que as verificações de CI comecem aquecidas. As verificações rodam em runners; runners gerenciados mais rápidos encurtam a execução de lint e teste.

O veredito

Um repositório poliglota querendo hooks da comunidade reutilizáveis e fixados por versão: pre-commit. Um projeto JavaScript querendo a opção leve e nativa do ecossistema: Husky. Escolha pela mistura de linguagens - pre-commit para muitas linguagens, Husky para JS em primeiro lugar - e imponha as verificações no CI também.

Guias relacionados