Muhtemelen budalalık yapan bir şey yapmamaya çalışıyorum, ama işte gidiyor. Oluşturma görevimin yalnızca kaynak dosyaların çıktı dosyasından daha yeni olması durumunda çalışmasını istiyorum.Gulp'de, birden çok dosya daha yeni olduğunda bir dosyayı yalnızca bir dosyada nasıl çalıştırırım?
Gulp'ta, her zaman çalışan bir derleme görevi oluşturmak ve ardından belirli dosyalar değiştiğinde bu derleme görevini çalıştırmak için bir saat görevi ayarlamak standart uygulama gibi görünüyor. Sorun değil, ama ilk seferde her zaman yapman gerektiği anlamına geliyor.
İstediğimi yapmak mümkün mü? İşte ben bugüne kadar bu var (daha yeni yudum-yeniyse):
gulp.task('build_lib', function() {
return gulp.src(["app/**/*.ts"])
.pipe(newer("out/outputLib.js")) //are any of these files newer than the output?
** NEED SOMETHING HERE **
how do I say, "If I got _any_ files from the step before, replace all of them with a single hardcoded file "app/scripts/LibSource.ts" "?
.pipe(typescript({
declaration: true,
sourcemap: true,
emitError: false,
safe: true,
target: "ES5",
out: "outputLib.js"
}))
.pipe(gulp.dest('out/'))
});
Gulpif kullanmayı denedim, ancak başlayacak herhangi bir dosya yoksa işe yaramaz.
.pipe(gulpif(are_there_any_files_at_all,
gulp.src(["app/scripts/LibSource.ts"])))
Ancak, durumumun işlevi bile çağrılacak bir dosya olmadığı için çağrılmıyor. gulpif bu durumda gerçek akışı çağırıyor, bu yüzden LibSource benim akışıma ekleniyor, istediğim bu değil.
Belki de bunların tümünü tek bir akışta yapmak gerçekten doğru çağrı değil, çünkü bu dosyaları "gulp-newer" süzgecinden geçirmenin tek nedeni, bunların daha yeni olup olmadığını görmek. Onları atıp başka bir dosyayla değiştiriyorum. Benim sorum yine de duruyor.
Müthiş! Teşekkürler! – Taytay