gulp watchify需要两次保存以包含更改

时间:2017-02-25 19:59:14

标签: javascript npm gulp watchify

现在尝试使用watchify一段时间了,我遇到了保存问题。

似乎每次更改都需要保存两次,以便在输出中应用更改。

如果我在任何js文件中添加代码,新添加的代码只会在任务运行两次时显示。

我的mainScrpits-task代码

var customOpts = {
      entries: ['./app/app.js'],
      debug: true
    };
    var opts = assign({}, watchify.args, customOpts);
    var b = watchify(browserify(opts));


    gulp.task('mainScripts', bundle);
    b.on('update', bundle);
    b.on('log', gutil.log);

    function bundle() {
      console.log('bundle');
      return b.bundle()
        .on('error', gutil.log.bind(gutil, 'Browserify Error'))
        .pipe(source('main.js'))
        .pipe(buffer())
        .pipe(gulpif(!condition, sourcemaps.init({
          loadMaps: true
        })))
        .pipe(gulpif(!condition, sourcemaps.write('./')))
        .pipe(gulp.dest('./dist/js/'))
        .pipe(gulpif(isLocal(), connect.reload()));
    }

“观看” - 任务

gulp.task('watch', function() {
  gulp.watch('app/**/*.js', ['mainScripts']);
});

1 个答案:

答案 0 :(得分:1)

watchify和gulp.watch都在寻找你文件的变化,这会导致创建捆绑包的竞争条件。

您的监视任务应该只是启动您的mainScripts任务:

gulp.task('watch', function() {
  gulp.start('mainScripts');
});