Ich habe vor kurzem eine Liebe zu Gruntjs genommen und habe mich bei jeder Gelegenheit glücklich gemacht, mein Entwicklungsleben so viel einfacher zu machen. Momentan habe ich es meine SASS-Dateien kompilieren, Uhren laufen lassen und nodemon verwenden, um meinen Knotenserver zu aktualisieren, während ich an der App arbeite.Gruntjs - Ausführen mehrerer Blockieraufgaben in einer bestimmten Reihenfolge (Mongo & Node.js)
Also hier ist, wo ich den Morgen damit verbracht habe, mich selbst verrückt zu machen. Ich möchte MongoDB starten, bevor die Node-Anwendung ausgeführt wird. Im Setup der Node-App überprüfe ich nach irgendwelchen Werten in den Datenbanken und wenn es leer ist, schiebe eine Testdatei voller Informationen in die Tabellen.
Ich habe derzeit versucht, mit grunt-concurrent und grunt-shell-spawn die erforderlichen Mongo und Node-Befehle auszuführen.
grunt.initConfig({
shell: {
mongo: {
command: 'mongo'
},
node: {
command: 'node app.js'
}
},
concurrent: {
dev: {
tasks: ['shell:mongo','shell:node'],
options: { logConcurrentOutput: true }
}
}
});
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-shell-spawn');
Gibt es eine Möglichkeit, um sicherzustellen, dass der Mongo Befehl erreicht es „blockiert“ Zustand, bevor der Knoten Aufgabe ausgeführt wird? Ich vermute, dass dies getan werden könnte, indem Sie die Node-Task async auf einer setTimeout-Funktion ausführen, aber ich möchte nicht ständig darauf warten müssen, dass Änderungen im Entwicklungsprozess wirksam werden. Zur Zeit habe ich eine separate Shell-Registerkarte für die Datenbank geöffnet und würde diese gerne in Grunt integrieren, um alles an einem Ort zu halten.
Ich bin mir nicht sicher, ob es in großem Umfang wichtig ist, aber jeder, der Node.js und MongoDB verwendet, würde das wirklich nützlich finden.
Dank
Bitte versuchen Sie, http://stackoverflow.com/about zu lesen, um mehr Verständnis für Fragen/Antworten hier auf SO zu bekommen. Ihr Beitrag beantwortet die Frage nicht. Es ist mehr ein Kommentar, den Sie hinzufügen können, sobald Sie Ihre Reputation erhöhen: http://stackoverflow.com/faq#reputation –