JSPM

setup-commitlint-husky-automator

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1
    • Score
      100M100P100Q20772F
    • License MIT

    Um pacote CLI para automatizar a configuração do Husky e Commitlint (hook commit-msg) em projetos.

    Package Exports

    • setup-commitlint-husky-automator
    • setup-commitlint-husky-automator/index.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (setup-commitlint-husky-automator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    setup-commitlint-husky-automator

    Um pacote CLI simples para automatizar a configuração do Husky e Commitlint 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 (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 (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)

    📦 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:

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

    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:

    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:

    // 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"
      }
    }

    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):

      echo "Olá Mundo!" > index.html
      git add .
    2. 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.

    3. 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.

    ⚠️ 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 para mais detalhes.

    👤 Autor

    Jeiel Miranda