A maioria dos projetos em que trabalho atualmente contém um arquivo package.json
para gerenciar as dependências. O senhor acha que, a essa altura, eu já estaria acostumado a ver o arquivo package.json
quando eu fizesse um git pull
e isso acionava algo em minha cabeça para executar npm install
para garantir que eu tivesse as dependências mais recentes instaladas, mas, de alguma forma, continuo esquecendo de fazer isso. Em vez disso, vejo npm start
resultando em erros, o que me leva a ficar com cara de palma após palma. Provavelmente é hora de automatizar essa tarefa.
Uma rápida pesquisa no Google me levou a um série de gists para usar um git hook
para acionar o npm install
se um arquivo package.json tiver sido atualizado. Coloque um post-merge
no seu arquivo .git/hooks
com o seguinte conteúdo:
#/usr/bin/env bash # MIT © Sindre Sorhus - sindresorhus.com # git hook to run a command after `git pull` if a specified file was changed # Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`. changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" check_run() { echo "$changed_files" | grep --quiet "$1" && eval "$2" } # Example usage # In this example it's used to run `npm install` if package.json changed and `bower install` if `bower.json` changed. check_run package.json "npm install" check_run bower.json "bower install"
A leitura dos comentários no gist mostra uma série de outros acionadores condicionais úteis, como o composer install
do PHP, pré-processamento de arquivos .sass e outros.
# Updating git submodules check_run .gitmodules "git submodule init && git submodule update" # Installing composer dependencies check_run composer.json "composer install" # For those who use gulp check_run web/assets "gulp --production"
Esse gancho será incrivelmente útil para mim daqui para frente – não precisarei mais me lembrar das etapas que preciso executar a cada puxada!
Eu sou um Impostor
Essa é a coisa mais difícil que já tive de escrever, muito menos admitir para mim mesmo. Já escrevi cartas de demissão de empregos que amava, terminei relacionamentos, fracassei em uma série de tarefas e me decepcionei em minha vida. Todos esses sentimentos foram muito…
Demonstrações favoritas de Chris Coyier no CodePen
David me perguntou se eu gostaria de fazer um post como convidado, escolhendo algumas das minhas canetas favoritas do CodePen. É uma tarefa difícil! São tantas! Mas consegui escolher algumas que me surpreenderam nos últimos meses. Se o senhor…