Gulp手表导致无限循环

时间:2015-11-14 17:04:39

标签: javascript gulp

当我运行gulp js并对JS文件进行更改时,它会在调用时进入无限循环

为什么从gulp.watch调用build永远不会返回?

var gulp = require("gulp");
var browserify = require("browserify");
var reactify = require("reactify");
var source = require("vinyl-source-stream");
var watch = require("gulp-watch");

function _bundle(config){
    return browserify({
        entries: ['./main.js'],
        transform: [reactify]
    }).bundle();
}
gulp.task('default',function(){
  "use strict";
  _bundle()
    .pipe(source('build.js'))
    .pipe(gulp.dest('./'));
});
gulp.task('build',function(){
    "use strict";
    _bundle()
        .pipe(source('build.js'))
        .pipe(gulp.dest('./'));

});



gulp.task('js', function() {

    //gulp.watch(['./*.js'], ['default']);
    gulp.watch(['./*.js'],['build'])
});

//

1 个答案:

答案 0 :(得分:4)

您在所有.js文件(watch)上指定*.js,并在其中任何一个更改时触发build。 依次构建_bundle,这将导致对main.js的修改 由于main.js*.js的{​​{1}}匹配,watch将再次被触发,现在您有一个确保无限循环的循环。