2015-11-06 5 views
1

У меня есть веб-приложение в node.js, которое я хочу начать с nodemon, поэтому каждый раз, когда изменяется основной скрипт, webapp может запускаться снова. В то же время у меня есть файлы coffeescript, которые мне нужно перекомпилировать каждый раз, когда какие-либо из них меняются. Я установил задание на grunt-contrib-watch, чтобы прослушать только файлы app/frontend/*.coffee, чтобы отправить парсер кофе. Однако это не похоже на хаптинг, так как задача нодема также слушает. Я установил app/frontend/ папку в nodemon игнорировать. Я также установил nodemon и посмотрел как параллельный. Тем не менее, каждый раз, когда я редактирую скрипт для кофе, задача кофе не выполняется.Как сделать ворчащие часы и ворчать nodemon работать вместе

Это мой Gruntfile

module.exports = function(grunt) { 

    // Project configuration. 
    grunt.initConfig({ 
    concurrent: { 
     dev: [ 
      'nodemon', 
      'watch' 
     ], 
     options: { 
      logConcurrentOutput: true 
     } 
    }, 
    coffee: { 
     compile: { 
     files: { 
      'app/public/app.js': ['app/frontend/*.coffee'] 
     } 
     } 
    }, 
    nodemon: { 
     dev: { 
     script: 'app/index.js', 
     options: { 
      ignore: ['app/frontend/**', 'app/public/**'] 
     } 
     } 
    }, 
    watch: { 
     scripts: { 
     files: 'app/frontend/*.coffee', 
     tasks: ['coffee'], 
     options: { 
      spawn: false 
     } 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-concurrent'); 
    grunt.loadNpmTasks('grunt-contrib-coffee'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-nodemon'); 

    // Default task(s). 
    grunt.registerTask('default', ['coffee', 'nodemon', 'watch']); 

}; 

ответ

2

Ваш Gruntfile инструктирует Grunt для запуска nodemon и watch последовательно в качестве задачи по умолчанию (и, таким образом, watch никогда не работает как nodemon никогда не заканчивается).

Вам необходимо явно включить concurrent задачу в последней строке:

grunt.registerTask('default', ['coffee', 'concurrent']);