setup-commitlint-husky-automator
Version:
Um pacote CLI para automatizar a configuração do Husky e Commitlint (hook commit-msg) em projetos.
156 lines (98 loc) • 5.68 kB
Markdown
# `setup-commitlint-husky-automator`
Um pacote CLI simples para automatizar a configuração do [Husky](https://typicode.github.io/husky/) e [Commitlint](https://commitlint.js.org/) em seus projetos Git.
## 🚀 Visão Geral
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ê!
## ✨ Por que usar?
* **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](https://www.conventionalcommits.org/en/v1.0.0/) (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`.
## ⚙️ Pré-requisitos
Antes de usar este pacote, certifique-se de ter o seguinte instalado em seu sistema:
* [**Node.js**](https://nodejs.org/) (versão 16 ou superior)
* [**npm**](https://www.npmjs.com/) (gerenciador de pacotes do Node.js, geralmente vem com o Node.js)
* [**Git**](https://git-scm.com/) (sistema de controle de versão)
## 📦 Instalação e Uso
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).
### Passo 1: Inicialize seu Projeto (se ainda não o fez)
Se você está começando um projeto novo, certifique-se de que ele tenha um repositório Git e um arquivo `package.json`:
```bash
# 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
```
### Passo 2: Execute o Automatizador
Você pode executar o pacote de duas maneiras:
#### Opção A: Usar via `npx` (recomendado para uso único)
Esta é a forma mais comum, pois não instala o pacote globalmente e sempre usa a versão mais recente:
```bash
npx setup-commitlint-husky-automator
```
#### Opção B: Instalar Globalmente (se for usar em muitos projetos)
Se você planeja usar esta ferramenta em muitos projetos diferentes e prefere instalá-la globalmente:
```bash
npm install -g setup-commitlint-husky-automator
# Depois de instalar globalmente, você pode executar em qualquer diretório de projeto:
setup-commitlint-husky
```
### O que acontece ao executar?
Ao executar `npx setup-commitlint-husky-automator` (ou `setup-commitlint-husky`), o script fará o seguinte:
1. **Instalará dependências**: Adicionará `husky`, `@commitlint/cli` e `@commitlint/config-conventional` como `devDependencies` no seu `package.json` e os instalará.
2. **Inicializará Husky**: Criará a pasta `.husky/` no seu projeto e configurará o Git para usar os hooks gerenciados pelo Husky.
3. **Configurará o `commit-msg` Hook**: Criará (ou atualizará) o arquivo `.husky/commit-msg` para que o Commitlint valide sua mensagem de commit a cada `git commit`.
### Passo 3: Adicione a Configuração do Commitlint
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:
```javascript
// commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional'],
};
```
Alternativamente, você pode adicionar a configuração diretamente no seu `package.json`:
```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"
}
}
```
### Passo 4: Teste a Configuração
Agora, tente fazer um commit para ver o Commitlint em ação!
1. **Crie alguma alteração (exemplo: adicione ou modifique um arquivo):**
```bash
echo "Olá Mundo!" > index.html
git add .
```
2. **Tente um commit que NÃO segue as convenções:**
```bash
git commit -m "commit sem padrão"
```
Você deve ver uma mensagem de erro do Commitlint no terminal, e o commit será **abortado**.
3. **Tente um commit que SEGUE as convenções:**
```bash
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.
## ⚠️ Observações e Solução de Problemas
* **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 com `chmod +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.
## 📄 Licença
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo [LICENSE](LICENSE) para mais detalhes.
## 👤 Autor
Jeiel Miranda