2016-03-31 14 views
1

Es gibt einen Fehler im folgenden Schluck Stream, aber ich konnte einfach nicht finden, wo.Schluck-Stream erzeugt keine Ziel-Dateien

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')); 

Problem: Die dist/org.css nicht

regeneriert

es etwas sein muss, ich bin hier fehlt.

Antwort

1

Das Problem ist, dass gulp-concat nicht die verkettete org.css Datei verschiebt, es sei denn, es empfängt ein end Ereignis von Upstream. Da gulp-watch nie das Ereignis end ausstrahlt, bleibt gulp-concat einfach unbegrenzt hängen.

Die Lösung ist einfach gulp-concat mit gulp-continuous-concat ersetzen:

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

Vielen Dank !!! Habe meinen Tag gerettet !! – gongzhitaao

1

Als Best Practice verwenden Sie den Glob-Root "./" als Präfix für Ihre Pfade. d.h. "./app/css/normalize.css" und so weiter.

Versuchen Sie, zu verwenden, um zu sehen, wie viele Dateien in der Pipe sind, falls vorhanden. Sie können zwischen jedem Schritt eine Debug-Pipe hinzufügen, um zu sehen, was passiert.

+0

Danke für die glob Spitze. Ich werde das beheben. Und ich habe 'gulp-debug' verwendet, es gibt den Dateinamen aus, aber keine Datei generiert. @Sven Schcenungs Antwort löst mein Problem. – gongzhitaao