Javascript 吞咽手表导致无限循环

Javascript 吞咽手表导致无限循环,javascript,gulp,Javascript,Gulp,当我运行gulpjs并对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");

当我运行gulpjs并对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'])
});

//

您正在所有.js文件(
*.js
)上指定
监视
,并在其中任何文件发生更改时触发
生成
。 构建依次调用
\u bundle
,这将导致对
main.js

由于
main.js
watch
*.js
匹配,
build
将再次被触发,现在您有了一个确保无限循环的循环。

'notreturn'-它不应该返回,它应该“监视”一段时间changes@SimonH没错,那是措词不当的。问题是函数进入无限循环,在一次更改后不断调用_bundle。这就是问题所在。谢谢是的,我也有同样的问题,你怎么能忽略bundle文件呢?我想出来了:)我用过这个(如果有人像我一样来自谷歌):
gulp.watch(['webroot/js/***.js',“!webroot/js/bundle.js”],['default'])这个
字符使观察者忽略此文件。