2016-03-31 60 views
1

Aşağıda, gulp akışında bir hata var, ancak bulamadım.gulp stream, dest dosyaları üretmiyor

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

var myjob = gulp.src(['app/css/normalize.css', 
         'app/css/org.scss']) 
     .pipe(watch('app/css/org.scss', {verbose: true})) 
     .pipe(gulpif('*.scss', sass())) 
     .pipe(concat('org.css')) 
     .pipe(postcss(processors)) 
     .pipe(flatten()) 
     .pipe(gulp.dest('dist')); 

Sorun: dist/org.css Burada eksik birşeyler olmalı

yeniden oluşturulmaz.

cevap

1

Sorun, gulp-concat'un, bir end olayının akış yukarı alınmadığı sürece, birleştirilmiş org.css dosyasını göndermemesidir. gulp-watch hiçbir zaman end olayını yayınlamadığından gulp-concat sadece süresiz olarak askıda kalıyor.

çözüm basitçe gulp-continuous-concat ile gulp-concat değiştirmektir: glob ipucu için

var continuousConcat = require('gulp-continuous-concat'); 

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

gulp.task('default', function() { 
    return gulp.src(['app/css/normalize.css', 
        'app/css/org.scss']) 
    .pipe(watch('app/css/org.scss', {verbose: true})) 
    .pipe(gulpif('*.scss', sass())) 
    .pipe(continuousConcat('org.css')) 
    .pipe(postcss(processors)) 
    .pipe(flatten()) 
    .pipe(gulp.dest('dist')); 
}); 
+0

Teşekkür ederiz! Benim gün kurtardı! – gongzhitaao

1

En iyi uygulama olarak, yollarınızı önek için glob root "./" kullanın. yani "./app/css/normalize.css" vb.

Varsa, boruda kaç tane dosya olduğunu görmek için kullanmayı deneyin. Neler olup bittiğini görmek için her adım arasında bir hata ayıklama borusu ekleyebilirsiniz.

+0

teşekkürler. Bunu tamir edeceğim. Ve ben 'gulp-debug' kullandım, dosya adını çıktı ama hiçbir dosya oluşturulmadı. @Sven Schcenung'un cevabı benim problemimi çözüyor. – gongzhitaao