2014-02-25 62 views
5

我使用亞組的Watchify更好Browserify建立,一飲而盡手錶任務中,像這樣:整合一飲而盡,livereload與Watchify

var gulp = require('gulp'); 
var source = require('vinyl-source-stream'); 
var watchify = require('watchify'); 

var hbsfy = require("hbsfy").configure({ 
    extensions: ["html"] 
}); 

gulp.task('watch', function() { 
    var bundler = watchify('./public/js/app.js'); 

    bundler.transform(hbsfy); 

    bundler.on('update', rebundle); 

    function rebundle() { 
     return bundler.bundle() 
      .pipe(source('bundle.js')) 
      .pipe(gulp.dest('./public/dist/js/')); 
    } 

    return rebundle(); 
}); 

試圖找出我如何可以將現場重新放回任務,所以它在Watchify完成它的事情時觸發。任何想法我會如何做到這一點?

回答

7

您是否試過在gulp.dest()之後使用gulp-livereload

你應該能夠簡單地插入這樣的:

.pipe(livereload()) 

這假定bundler.bundle()管道正確的數據類型。

+1

[vinyl-source-stream](https://github.com/hughsk/vinyl-source-stream)('.pipe(source('bundle.js'))'在他的代碼中)將文本流從'bundler.bundle()'管道輸出,並使其成爲gulp使用的乙烯文件流,替換'gulp.src()'。因此,其他的一些插件可以在那之後傳輸。 – DSKrepps

+0

啊,謝謝,我沒有看到那一行。很高興知道! – OverZealous

+1

另請注意,如果你使用gulp-connect,你可以'.pipe(connect.reload())' –