2015-04-28 3 views
1

Ниже приведен мой gulpfile.js. В нем есть еще несколько задач, и все работают нормально, но в последней задаче, watch нет.часы gulp не смотрят

Я пробовал все возможные комбинации путей и файлов, и что так всегда, но все же мне не повезло. Я читал много ответов на это здесь, но не смог решить мою проблему. Я попытался запустить gulp.watch с и без необходимости Глотка-часов, попробовал несколько различных подходов о том, как настроить задачу и так далее и так далее ...

var gulp = require('gulp'); 
var browserify = require('browserify'); 
var babelify = require('babelify'); 
var source = require('vinyl-source-stream'); 
var watch = require('gulp-watch'); 

gulp.task('application', function() { 
    return browserify('./public/resources/jsx/application.js') 
     .transform(babelify, { stage: 0 }) 
     .bundle() 
     .on('error', function(e){ 
      console.log(e.message); 

      this.emit('end'); 
     }) 
     .pipe(source('appBundle.js')) 
     .pipe(gulp.dest('./public/resources/jsx')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('./public/resources/jsx/project/*.js',['application']) 
}); 

Может кто-нибудь предложить решение?

EDIT:

Вот консольный вывод:

[email protected]:/opt/PhpstormProjects/app_april_2015$ gulp watch 
[23:05:03] Using gulpfile /opt/PhpstormProjects/app_april_2015/gulpfile.js 
[23:05:03] Starting 'watch'... 
[23:05:03] Finished 'watch' after 13 ms 
+0

Что вы делаете? Что не работает? – JMM

+0

После запуска задачи он запускается один раз, заканчивается без ошибок, но никогда не запускается снова. Независимо от того, что я делаю с файлом. @JMM – baao

+0

«Запуск задачи» означает «gulp watch»? «файл» означает 'application.js'? – JMM

ответ

5

Вы должны return часы:

gulp.task('watch', function() { 
    return gulp.watch('./public/resources/jsx/project/*.js',['application']) 
}); 

watch является async метод, так что единственный способ Глоток может знать, что что-то случается, если вы вернете promise, который делает часы.

Редактировать

Как указано @JMM, watch не возвращает Promise. Он возвращает EventEmitter.

+0

@andrerpena, сохраняя обещание от задачи, является лишь одним из нескольких способов указания, когда она будет завершена. И 'gulp.watch()' документируется как возвращающий EventEmitter. – JMM

+0

Ах, вот оно. Спасибо! – baao

+0

@JMM. Спасибо, я это исправил. Майкл, пожалуйста. –

Смежные вопросы