2015-04-15 15 views
9

Her seferinde watchify bir değişiklik algılıyor, paket zamanı yavaşlıyor. Yemin görevimde yanlış bir şey olmalı. Herhangi bir fikir olan var mı?Watching w/gulp ve babel kademeli olarak yavaşlıyor

gulp.task('bundle', function() { 
    var bundle = browserify({ 
      debug: true, 
      extensions: ['.js', '.jsx'], 
      entries: path.resolve(paths.root, files.entry) 
     }); 

    executeBundle(bundle); 
}); 

gulp.task('bundle-watch', function() { 
    var bundle = browserify({ 
     debug: true, 
     extensions: ['.js', '.jsx'], 
     entries: path.resolve(paths.root, files.entry) 
    }); 

    bundle = watchify(bundle); 
    bundle.on('update', function(){ 
     executeBundle(bundle); 
    }); 
    executeBundle(bundle); 

}); 

function executeBundle(bundle) { 
    var start = Date.now(); 
    bundle 
     .transform(babelify.configure({ 
      ignore: /(bower_components)|(node_modules)/ 
     })) 
     .bundle() 
     .on("error", function (err) { console.log("Error : " + err.message); }) 
     .pipe(source(files.bundle)) 
     .pipe(gulp.dest(paths.root)) 
     .pipe($.notify(function() { 
      console.log('bundle finished in ' + (Date.now() - start) + 'ms'); 
     })) 
} 
+1

Ben zaten demetine bu iki seçenek ekleyerek, düzelttim düşünüyorum düzeltmek görünmektedir: cache: {}, packageCache: {} – Niels

+0

Bu seçenekler gerekmektedir izlemek için kullanın. – JMM

+0

Yapılandırılmış bu seçenekleri kullanıyorum, ancak yine de benzer bir sorun görüyorum. Her çalıştırmada, dosyaya dokunulsa bile (sadece gerçek değiĢiklikler) dosyaya değiĢtirilmiĢ olsa bile (yeniden gerçekleĢtirilir) bir RangeError: Maksimum çağrı yığını boyutu aşıldı 0 – Emily

cevap

36

Aynı problemi yaşadım ve DEBUG çevre değişkenini babel olarak ayarlayarak bunu araştırdım. ör .:

$ DEBUG=babel gulp 

Ben babelify dönüşümleri birden çok kez koştu fark ayıklama çıktısını teftiş sonra.

Suçlu, paketin her yürütüldüğü zaman dönüşümü gerçekten eklediğimdi. Aynı problem gibi gözüküyorsun.

görevleri içine executeBundle içinden

.transform(babelify.configure({ 
    ignore: /(bower_components)|(node_modules)/ 
})) 

hareket

. Yeni bundle-watch böyle yazılmış olabilir:

gulp.task('bundle-watch', function() { 
    var bundle = browserify({ 
     debug: true, 
     extensions: ['.js', '.jsx'], 
     entries: path.resolve(paths.root, files.entry) 
    }); 

    bundle = watchify(bundle); 
    bundle.transform(babelify.configure({ 
     ignore: /(bower_components)|(node_modules)/ 
    })) 
    bundle.on('update', function(){ 
     executeBundle(bundle); 
    }); 
    executeBundle(bundle); 
}); 
+3

Keşke daha fazlasını yapabilirim. Bunu anlayabilmem uzun zaman alacaktı. – joemaller

+0

Çok lekeli! Dönüşümü her bir izleme güncellemesi olarak adlandırılan yöntemin dışına taşımak, zamanla aşamalı olarak daha uzun ve daha uzun süren yapım süreciyle ilgili benzer bir sorunu düzeltdi. –

İlgili konular