Um pacote CLI simples para automatizar a configuração do Husky e Commitlint em seus projetos Git.
Este pacote foi criado para simplificar o processo de configuração de Git Hooks com Husky para impor a padronização de mensagens de commit usando o Commitlint. Em vez de executar múltiplos comandos manuais para instalar dependências e configurar arquivos, esta ferramenta faz tudo por você!
-
Automação: Instala automaticamente as dependências necessárias e configura o Git Hook
commit-msg
. -
Consistência: Garante que todas as mensagens de commit em seu projeto sigam as Convenções de Commits (via
@commitlint/config-conventional
). -
Produtividade: Economize tempo e evite erros de configuração manual, permitindo que você e sua equipe foquem no desenvolvimento.
-
Histórico Limpo: Ajuda a manter um histórico de commits legível e organizado, facilitando a depuração e a geração de
CHANGELOGs
.
Antes de usar este pacote, certifique-se de ter o seguinte instalado em seu sistema:
-
Node.js (versão 16 ou superior)
-
npm (gerenciador de pacotes do Node.js, geralmente vem com o Node.js)
-
Git (sistema de controle de versão)
Para usar este pacote, siga os passos abaixo no terminal, na raiz do seu projeto (onde você tem seu package.json
e seu repositório Git).
Se você está começando um projeto novo, certifique-se de que ele tenha um repositório Git e um arquivo package.json
:
# Navegue até a pasta do seu projeto
cd seu-projeto/
# Inicialize um repositório Git
git init
# Crie um arquivo package.json básico
npm init -y
Você pode executar o pacote de duas maneiras:
Esta é a forma mais comum, pois não instala o pacote globalmente e sempre usa a versão mais recente:
npx setup-commitlint-husky-automator
Se você planeja usar esta ferramenta em muitos projetos diferentes e prefere instalá-la globalmente:
npm install -g setup-commitlint-husky-automator
# Depois de instalar globalmente, você pode executar em qualquer diretório de projeto:
setup-commitlint-husky
Ao executar npx setup-commitlint-husky-automator
(ou setup-commitlint-husky
), o script fará o seguinte:
-
Instalará dependências: Adicionará
husky
,@commitlint/cli
e@commitlint/config-conventional
comodevDependencies
no seupackage.json
e os instalará. -
Inicializará Husky: Criará a pasta
.husky/
no seu projeto e configurará o Git para usar os hooks gerenciados pelo Husky. -
Configurará o
commit-msg
Hook: Criará (ou atualizará) o arquivo.husky/commit-msg
para que o Commitlint valide sua mensagem de commit a cadagit commit
.
Para que o Commitlint saiba quais regras aplicar, você precisa de um arquivo de configuração. Crie um arquivo chamado commitlint.config.js
na raiz do seu projeto com o seguinte conteúdo:
// commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional'],
};
Alternativamente, você pode adicionar a configuração diretamente no seu package.json
:
{
"name": "seu-projeto",
"version": "1.0.0",
"description": "...",
// ... outras configurações
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"devDependencies": {
"@commitlint/cli": "^19.0.0",
"@commitlint/config-conventional": "^19.0.0",
"husky": "^9.0.0"
}
}
Agora, tente fazer um commit para ver o Commitlint em ação!
-
Crie alguma alteração (exemplo: adicione ou modifique um arquivo):
echo "Olá Mundo!" > index.html git add .
-
Tente um commit que NÃO segue as convenções:
git commit -m "commit sem padrão"
Você deve ver uma mensagem de erro do Commitlint no terminal, e o commit será abortado.
-
Tente um commit que SEGUE as convenções:
git commit -m "feat: adiciona página inicial com mensagem de saudação"
Este commit deve ser aceito sem problemas, e sua mensagem de commit será validada.
-
Permissões de Execução: Se encontrar erros de permissão (
Permission denied
), certifique-se de que os scripts do Husky na pasta.husky/
são executáveis. O automatizador já tenta fazer isso comchmod +x
, mas em alguns ambientes pode ser necessário verificar. -
Versões do Node.js/npm: Certifique-se de que suas versões de Node.js e npm são compatíveis com as dependências.
-
Problemas de Internet: A instalação de pacotes requer uma conexão ativa com a internet.
-
Mensagens de Erro do Commitlint: O Commitlint fornecerá feedback detalhado sobre o que está errado com sua mensagem de commit. Preste atenção a essas mensagens para corrigir o formato.
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Jeiel Miranda