当我运行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'])
});
//
答案 0 :(得分:4)
您在所有.js文件(watch
)上指定*.js
,并在其中任何一个更改时触发build
。
依次构建_bundle
,这将导致对main.js
的修改
由于main.js
与*.js
的{{1}}匹配,watch
将再次被触发,现在您有一个确保无限循环的循环。