2013-07-26 13 views
21

Ist es möglich, MongoDB innerhalb einer Grunt-Aufgabe zu starten? Grundsätzlich, wenn ich meine Entwicklungsumgebung mit grunt server betreibe, möchte ich, dass sie den MongoDB-Server auch startet, möglicherweise indem sie mongod ausführt.Starten von MongoDB innerhalb einer Grunt-Aufgabe

+0

Entschuldigung @SindreSorhus, ich bin nicht wieder zu arbeiten durch diese seit. Die Antwort ist jetzt akzeptiert. – claydiffrient

+0

grunt-shell blockiert, so dass der Befehl den Rest der Build-Schritte aufhängt. – JJJ

Antwort

20

Sie können grunt-shell verwenden Sie den Befehl auszuführen:

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

Sie grunt-shell-spawn dies zu tun, verwenden können. Die vorherige Antwort empfiehlt Grunt-Shell, die synchron auf den Hauptprozess läuft - blockiert die Ausführung anderer Aufgaben.

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

zu JJJ Antwort hinzuzufügen, mit grunt-shell-spawn, wenn Sie jeweils sicher, dass Projekt machen möchten, hat es mit seinen eigenen Daten selbst mongodb Instanz Sie dies tun würde:

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

Das Beispiel druckt auch aus Fehler.

Sie würden dann fügen Sie einfach shell:mongodb auf Ihre grunt server Aufgabenliste (vorzugsweise die erste Aufgabe), fügen data zu Ihrem .gitignore (vorausgesetzt, Sie verwenden git) und du bist gut zu gehen.

+0

Mit dem Standard-Mongo-Setup, das ich habe, habe ich den DB-Pfad '/ data/db' ohne die anfängliche Verzeichnismarke verwendet. Abgesehen davon ist dies eine großartige Ergänzung zu JJJs bereits guter Antwort. – Scott

Verwandte Themen