2013-07-26 8 views
21

Czy można uruchomić MongoDB z poziomu zadania Grunt? Zasadniczo, gdy uruchamiam środowisko programistyczne z grunt server, chcę, aby uruchomił serwer MongoDB, jak również prawdopodobnie uruchamiając mongod.Uruchom MongoDB z poziomu zadania Grunt

+0

Przepraszam @ SindreSorhus, od tego czasu nie wróciłem do pracy. Odpowiedź jest teraz akceptowana. – claydiffrient

+0

chrząknięcie jest blokowane, więc polecenie zawiesza pozostałe kroki budowania. – JJJ

Odpowiedz

20

Można użyć grunt-shell uruchomić polecenie:

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

grunt-shell-spawn Można użyć do tego celu. Poprzednia odpowiedź zaleca pomrucznik, który synchronicznie działa na głównym procesie - blokując wykonywanie innych zadań.

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

Aby dodać odpowiedź jjj, wykorzystując grunt-shell-spawn jeśli chcesz, aby upewnić się każdy projekt ma swój własny przykład MongoDB z jego własnych danych, by to zrobić:

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

Przykład drukuje również wyłącznie błędy.

można będzie wtedy wystarczy dodać shell:mongodb do listy zadań grunt server (najlepiej pierwsze zadanie), dodać data do listy .gitignore (zakładając że używasz git) i jesteś dobry, aby przejść.

+0

Przy domyślnym ustawieniu mongo użyłem ścieżki db '/ data/db' bez początkowego znacznika katalogu. Poza tym jest to świetny dodatek do już świetnej odpowiedzi JJJ. – Scott