Existem certas ações que devem ser executadas antes que o código entre no commit e no repositório, para pelo menos não sofrer posteriormente com o rebase todas as vezes. A solução que vou descrever é curta e simples, mas torna a vida do desenvolvedor muito mais fácil.
O propósito mais óbvio é executar testes, mas para mim também é construir um pacote. Já que eu não uso watch e regularmente me esqueço de executar o comando build manualmente, versões irrelevantes de bundles são frequentemente inseridas no commit, e os atuais têm que ser confirmados em seguida. Acontece que não é muito legal. Para javascript, o utilitário pre-commit nos ajudará. Ele usa o hook gita, mas dá a você a oportunidade de não entrar em todas essas entranhas e gerenciar a galáxia sem sair do npm. Além disso, essa mecânica não será esquecida ao alterar o repositório.
Vamos de uma forma prática: adicione a biblioteca ao projeto
npm i pre-commit --save-dev
Em package.json, adicione o comando build à seção pré-commit
"pre-commit": [
"build"
],
No entanto, os arquivos do pacote coletados não serão incluídos no commit, uma vez que O git precisa indicar explicitamente os arquivos modificados e adicionados e adicionar tudo parece muito perigoso. Para que tudo comece a funcionar corretamente, vamos definir o comando add-bundles que adiciona arquivos de bundle.
"scripts": {
"build": "npx rollup --config rollup.config.js",
"add-bundles": "git add dist/*",
"test": "echo \"Error: no test specified\" && exit 1"
},
E adicione o próprio comando à seção de pré-confirmação
"pre-commit": [
"build", "add-bundles"
],
Agora, um pouco antes do commit, o pacote é imediatamente montado e adicionado ao commit. Se você precisar de um exemplo funcional completo, há um no repositório desta biblioteca .
Este pacote tem análogos para outros ganchos, por exemplo, este .