Usando Nodemon com Meteor para fluxo de trabalho de teste Rails-Guard-Style

Usando nodemon com meteoro

Introdução

Hoje cedo, eu estava tentando encontrar um rails-guardfluxo 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 inotifye 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 laikatudo 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!