Grunt配置监视和业力:单个任务中的单位

时间:2014-05-24 22:45:44

标签: javascript gruntjs karma-runner grunt-contrib-watch

目前我遵循Gruntfile配置,有两个独立的任务,它完美无缺:

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

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

我想做一个涵盖这两件事并登录到一个终端窗口的任务。 类似的东西:

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

问题在于业力和手表无法一起工作。我试图将karma:unit:run置于watch配置并且它可以工作,但是在每次文件更改时加载karma配置。而这件事我不喜欢:

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)

是否有可能解决此问题或更好地单独运行这些任务?

1 个答案:

答案 0 :(得分:4)

使用grunt-concurrent同时执行监视和业力任务:

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

然后从您的开发任务中运行并发任务:

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