2013-07-26 9 views
21

È possibile avviare MongoDB da un'attività Grunt? Fondamentalmente, quando eseguo il mio ambiente di sviluppo con grunt server, voglio che avvenga anche il server MongoDB eseguendo probabilmente mongod.Avviare MongoDB da un'attività Grunt

+0

Mi dispiace @SindreSorhus, non sono tornato a lavorare su questo da allora. La risposta è ora accettata. – claydiffrient

+0

grunt-shell sta bloccando, quindi il comando blocca il resto dei passi di costruzione. – JJJ

risposta

20

È possibile utilizzare grunt-shell per eseguire il comando:

grunt.initConfig({ 
    shell: { 
     mongo: { 
      command: 'mongod' 
     } 
    } 
}); 
39

È possibile utilizzare grunt-shell-spawn per fare questo. La risposta precedente raccomanda grunt-shell, che viene eseguito in modo sincrono sul processo principale, bloccando l'esecuzione di altre attività.

shell: { 
    mongo: { 
     command: 'mongod', 
     options: { 
      async: true 
     } 
    } 
} 
23

Per aggiungere alla risposta di JJJ, utilizzando grunt-shell-spawn se si vuole fare in modo ogni progetto ha il proprio esempio MongoDB con il proprio i dati si dovrebbe fare questo:

shell: { 
    mongodb: { 
     command: 'mongod --dbpath ./data/db', 
     options: { 
      async: true, 
      stdout: false, 
      stderr: true, 
      failOnError: true, 
      execOptions: { 
       cwd: '.' 
      } 
     } 
    } 
}, 

L'esempio stampa anche solo errori.

Si potrebbe quindi basta aggiungere alla tua lista shell:mongodbgrunt server compito (preferibilmente il primo compito), aggiungere data al vostro .gitignore (supponendo che si sta usando git) e sei a posto.

+0

Con la configurazione mongo di default che ho, ho usato il percorso db '/ data/db' senza il segno di directory iniziale. A parte questo, questa è una grande aggiunta alla già ottima risposta di JJJ. – Scott