2014-05-24 10 views
6

Obecnie mam następujący Gruntfile konfiguracji z dwóch oddzielnych zadań i działa idealnie:Grunt zegarek config i karma: jednostka w jednym zadaniu

grunt.registerTask('server', [ 
    'connect', 
    'jshint', 
    'less:dev', 
    'watch' 
]); 

grunt.registerTask('test', [ 
    'karma:unit' 
]); 

Chciałbym zrobić jedno zadanie, które obejmują zarówno rzeczy i zaloguj się jedno okno terminala. Coś jak:

grunt.registerTask('dev', [ 
    'connect', 
    'jshint', 
    'less:dev', 
    'karma:unit', 
    'watch' 
]); 

Problemem jest to, że karma i zegarek nie mogą ze sobą współpracować. Próbowałem umieścić konfigurację karma:unit:run na watch i działa, ale ładuje konfigurację karmy przy każdej zmianie pliku. I to, czego nie lubię:

Running "karma:unit:run" (karma) task 
[2014-05-25 01:40:24.466] [DEBUG] config - Loading config /Users/.../test/karma.config.js 
PhantomJS 1.9.7 (Mac OS X): Executed 4 of 4 SUCCESS (0.011 secs/0.012 secs) 

Czy istnieje możliwość rozwiązania tego problemu lub lepiej, aby uruchomić te zadania osobno?

Odpowiedz

4

Zastosowanie grunt-concurrent do uruchamiania zadań zarówno oglądać i karmy:

concurrent: { 
    target: { 
    tasks: ['karma:unit', 'watch'] 
    } 
} 

Następnie uruchom zadanie współbieżne ze swojego zadania dev:

grunt.registerTask('dev', [ 
    'connect', 
    'jshint', 
    'less:dev', 
    'concurrent:target' 
]); 
+3

Dzięki, to szukałem. Ale trzeba dodać 'logConcurrentOutput: true' dla właściwego logowania. –