Gulp watch 导致无限循环

woo*_*gie 5 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'])
});
Run Code Online (Sandbox Code Playgroud)

//

Cha*_*nga 5

watch在所有 .js 文件 ( *.js)上指定,并build在其中任何一个更改时触发。构建依次调用_bundle,这是会导致修改,main.js 因为main.js比赛*.jswatchbuild将再次被触发,现在你有一个周期,确保无限循环。