Usando nodemon com meteoro
Introdução
Hoje cedo, eu estava tentando encontrar um rails-guard
fluxo de trabalho -esque rápido para Meteor com a estrutura de teste Laika. Olhando para trás, para a solução do próprio Rails guard
, pensei que precisaria de uma maneira de fazer o seguinte:
- Procure por alterações de arquivo em uma árvore / lista de arquivos e árvores de arquivos
- Definir ignora para eficiência
- Execute um comando quando uma mudança acontecer, no nosso caso
laika
.
Depois de vários minutos de pesquisar e experimentar soluções como inotify
e GNU watch
, finalmente encontrei meu candidato: nodemon
.
À primeira vista, o nodemon se encaixa nas coisas que eu esperava acima .. e muito mais! Além disso, eu também estava procurando uma solução baseada em node.js, então fale sobre sorte!
Uma aventura começa ..
Inicialmente, fazer o nodemon assistir a minha árvore de projeto atual parece bastante simples:
nodemon -x "laika"
Legal! No entanto, há um problema aqui ..
Uma bifurcação na estrada ..
O Nodemon parece continuar reiniciando e não faz nada produtivo. O motivo da reinicialização era porque havia arquivos que são constantemente alterados pelo próprio laika:
client/meteor-suite-client.js
server/meteor-suite/server.js
Hã. Não me lembro de ter esses arquivos. Então, imediatamente percebi que esses são, na verdade, os arquivos que laika está injetando em meu aplicativo para fazer seu trabalho. O que fazer agora? para o resgate!.nodemonignore
Depois de muita deliberação e mais algumas tentativas e erros, eu vim com este arquivo:.nodemonignore
/.meteor/*
/.laika/*
/packages/*
./README.md
*.css
/client/*suite*
/server/*suite*
Não é perfeito, porque … digamos que queremos mudar os pacotes para cumprir alguns testes. Isso não faz nada. Mas, ei, pelo menos é um começo – certo? Nada mal por pouco mais de uma hora do meu tempo!
Sucesso ressonante
Atualmente estou muito feliz com o resultado! Pelo menos remove todo o rancor que experimento redigitar laika
tudo de novo no console;) Definitivamente, há mais melhorias a serem feitas e estou aberto a sugestões! No momento, a falta de tempo em nosso projeto (que exige que entreguemos com 99% ~ 100% de precisão) me permite ficar apenas com algo simples. Laika por si só nos salvou muito tempo (atualmente e no futuro)!
Créditos
Agradecimentos a @arunoda ( https://twitter.com/arunoda ) pelo Laika Testing Framework e @remy ( https://github.com/remy/ ) por nodemon
!