UNPKG

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
# `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