È 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
risposta
È possibile utilizzare grunt-shell per eseguire il comando:
grunt.initConfig({
shell: {
mongo: {
command: 'mongod'
}
}
});
È 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
}
}
}
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:mongodb
grunt server
compito (preferibilmente il primo compito), aggiungere data
al vostro .gitignore
(supponendo che si sta usando git) e sei a posto.
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
Mi dispiace @SindreSorhus, non sono tornato a lavorare su questo da allora. La risposta è ora accettata. – claydiffrient
grunt-shell sta bloccando, quindi il comando blocca il resto dei passi di costruzione. – JJJ