2017-02-25 3 views
0

Versucht, watchify für eine Weile jetzt zu verwenden, und ich habe ein Problem mit dem Speichern.schluck watchify benötigt zwei speichert, um Änderungen zu enthalten

Es scheint wie für jede Änderung, die ich mache, muss ich zwei Mal speichern, damit die Änderungen in der Ausgabe angewendet werden.

Wenn ich Code in einer js-Datei hinzufüge, wird der neu hinzugefügte Code nur angezeigt, wenn der Task zweimal ausgeführt wird.

Mein Code für die mainScrpits-Aufgabe

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())); 
    } 

Die "watch"

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

Antwort

1

Beide watchify und gulp.watch suchen Änderungen an Dateien -TASK und dass verursacht Race-Bedingungen bei der Erstellung des Bundles.

Sie soll Uhr Aufgabe beginnt gerade Aufgabe Ihrer mainScripts:

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

wie ein Charme! – Joel

Verwandte Themen