2016-03-31 71 views
1

以下gulp流中存在一個錯誤,但我無法找到位置。gulp stream不會生成dest文件

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

問題:該dist/org.css沒有再生

一定有我丟失的東西在這裏。

回答

1

問題是gulp-concat不會推送級聯的org.css文件,除非它從上游收到一個end事件。由於gulp-watch從未發出end事件,因此gulp-concat只是無限期地掛起。

的解決方案是簡單地用gulp-continuous-concat替換gulp-concat

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

謝謝!保存我的一天! – gongzhitaao

1

作爲一個最佳實踐,使用glob root「./」作爲路徑的前綴。即「./app/css/normalize.css」等等。

嘗試並使用gulp-debug查看管道中有多少個文件(如果有)。您可以在每個步驟之間添加調試管道,以查看發生了什麼。

+0

感謝您的水珠尖端。我會解決這個問題。我使用'gulp-debug',它輸出文件名,但沒有生成文件。 @Sven Schcenung的答案解決了我的問題。 – gongzhitaao