Os commits bem estruturados são fundamentais para a manutenção e evolução de qualquer projeto de software. Ferramentas como .
Neste tutorial, você aprenderá:
- O que é o Lefthook e por que ele é uma alternativa ao Husky.
- Como configurar o Lefthook em um projeto Node.js.
- Integrar o Conventional Commits para garantir mensagens de commit padronizadas.
- Criar uma configuração prática para automatizar verificações e garantir qualidade no seu fluxo de commits.
O que é o Lefthook e Por que Escolher Ele?
O Lefthook é uma ferramenta para gerenciar git hooks, como o Husky, mas oferece algumas vantagens significativas:
- Performance Superior: Ele é mais rápido que o Husky, especialmente em projetos maiores.
- Configuração Simples e Flexível: O Lefthook usa um único arquivo YAML para configurar seus hooks, o que facilita a manutenção.
- Multiplataforma: Suporte nativo a Windows, Linux e macOS.
- Execução em Paralelo: Ele permite rodar tarefas paralelamente, reduzindo o tempo de execução.
Por que trocar o Husky pelo Lefthook?
Embora o Husky seja amplamente usado, ele introduz dependências no package.json e scripts adicionais, o que pode complicar a configuração em equipes ou ambientes CI/CD. O Lefthook, por outro lado, funciona fora do package.json, mantendo seu projeto mais limpo.
O legal é que o Lefthook funciona para qualquer stack de projeto desde que você tenha o NodeJS instalado.
Dica: .
Mas basicamente é uma forma padronizada de colocar mensagens nos commits, tornando o processo de commit padronizado e organizado. Além de contar com ferramentas para fazer bump de versão e geração de
CHANGELOGbaseado em commits.
Instalando os Hooks
Execute o comando abaixo para instalar os hooks no repositório:
CODEnpx lefthook install
Esse comando fará com os hooks do git sejam instalado.
Nota: o projeto deve estar dentro de um repositório git.
Configurando o Conventional Commits
Adicione o Commitlint e as dependências necessárias:
CODEpnpm add -D @commitlint/{config-conventional,cli}
Adicione um arquivo de configuração chamado
commitlint.config.jsna raiz do seu projeto:
CODEmodule.exports = {
extends: ['@commitlint/config-conventional'],
};
Adicione um script no package.json para facilitar a execução manual do Commitlint:
CODE"scripts": {
"lint:commit": "commitlint --from=HEAD~1"
}
Automatizando e Garantindo Qualidade
Agora que configuramos o Lefthook e o Commitlint, toda vez que você fizer um commit:
- O Lefthook rodará as verificações configuradas antes de finalizar o commit.
- O Commitlint validará se sua mensagem de commit está no formato correto.
Exemplo de conventional commit:
CODEfeat: adicionar funcionalidade de login
- Implementa autenticação via JWT.
- Adiciona testes para a funcionalidade.
BREAKING CHANGE: A API agora requer autenticação em todas as rotas.
Se a mensagem não seguir o formato esperado, o commit será rejeitado.
Agora toda vez que você executar
git commit -m ...o Lefthook executará o pre-commit para validar se o seu commit está seguindo as convenções.
Conclusão
Com o Lefthook e o Conventional Commits, você eleva o padrão de qualidade do seu projeto Node.js, garantindo commits bem formatados e processos automatizados. Além disso, ao substituir o Husky pelo Lefthook, você obtém ganhos de performance e simplicidade na configuração.
Que tal começar a usar o Lefthook hoje mesmo? Experimente e compartilhe sua experiência!
↗ Original-Artikel auf dev.to lesenVollständiger Original-BerichtAusführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
SOCIAL SHARE CARD GENERATOR