2014-07-17 19 views
6

Ayrı .js dosyalarını gulp ile küçültmeyi denerim.gulp zaten küçültülmüş dosyayı minimize eder

file_one.js --> file_one.min.js 
file_two.js --> file_two.min.js 

Ben ilk kez gulp'u çalıştırıyorum.

file_one.js 
file_one.min.js 
file_one.min.min.js 
file_two.js 
file_two.min.js 
file_two.min.min.js 

Ve o deseni i yudum yürütmek her Timme tekrarlar: Ben ikinci kez çalıştırırsanız Ama buna benzer. Zaten küçültülmüş js küçültmek onu nasıl durdurabilirim. Eğer sigara küçültülmüş dosyaların aynı dizinde küçültülmüş dosya kaydederken, çünkü bu oluyor

gulp.task('scripts', function() { 
    return gulp.src('dest/*js') 
     .pipe(rename({ suffix: '.min' })) 
     .pipe(uglify()) 
     .pipe(gulp.dest('dest')); 
}); 

cevap

7

:

Ben aşağıdaki kodu kullanabilirsiniz. Akışınızın ilk kısmı (gulp.src), dest klasörünüzdeki tüm dosyaları okur. Minified dosyalarınızı aynı klasöre kaydettiğiniz için, ikinci kez çalıştırıldığında bunları yeniden küçülüyor. Bazı seçenekler vardır:

  1. Değiştir başka bir şey çıktı klasörü
  2. Değişikliği (örneğin gulp.dest('build') için) gulp.src sadece sigara küçültülmüş dosyaları
+0

Teşekkürler, muhteşem bir şekilde çalıştı! – Oscar

+0

Bence OP, 2. noktanızın nasıl yapılacağı hakkında açıklama istedi. Yani, "minik olmayan dosyaları eşleştir" –

+0

@RickDavies sadece yorumları oku. Bu çözüm onun için çalıştı. Reddetmeye gerek yok. –

21

You küçültülmüş dosyaları koyabilirsiniz maç için farklı dizin veya böyle gulp.src bunları hariç tutabilirsiniz: sen s yaşıyorsanız

gulp.task('scripts', function() { 
    return gulp.src(['dest/*.js', '!dest/*.min.js']) 
     .pipe(rename({ suffix: '.min' })) 
     .pipe(uglify()) 
     .pipe(gulp.dest('dest')); 
}); 
+1

Minified dosyaları ilk olarak ayrı bir dizide hariç tutulsaydı: 'gulp.src (['css/*. Css'], ['! Css/*. Min.css'])', bir setteki gibi değil []. Bu benim için çalıştı. Teşekkürler! – rhand

0

çiftli roblem, böylece dosyayı yeniden çalıştırmak için önce hedef dosyayı silmeniz gerekir. Bakınız Örnek:

//clean 
gulp.task('clean', function(){ 
    return del(['dist']); 
}); 

    //Default task 
    gulp.task('default',['clean'], function(){ 
     gulp.start('usemin','imagemin','copy','views'); 
    });