2014-07-19 75 views
0

我想先構建我的scss,並在最後將結果與一個css文件合併。吞噬任務不會concat

這是我的任務

gulp.task('styles', function() { 
    gulp.src('../scss/styles.scss') 
     .pipe($.sass({ 
      errLogToConsole: true 
     })) 
     .pipe($.autoprefixer('last 2 versions')) 
     .pipe(gulp.dest('../public/styles/')) 
     .pipe($.filelog()) 
     .pipe($.size()); 

    gulp.src([ 
       '../public/bower_components/animate.css/animate.css',  
       '../public/styles/styles.css' 
      ], {base: '.'}) 
     .pipe($.concat('../public/styles/styles.css')) 
     .pipe($.filelog()) 
     .pipe($.size()); 
}); 

現在,最終的結果是一個CSS文件,該文件只包含我的SCSS CSS,它似乎有生命的CSS被忽略。任何建議我做錯了嗎?

+0

您應該在上海社會科學院一級級聯樣式表。在主.scss文件中執行一些@import語句。另外,請將您要導入的所有文件的文件擴展名更改爲.scss – Michael

+0

animate.css來自bower,因此我不能只包含它。 '@ import'不會將導入文件中的內容複製到其他文件中!無論如何,合併兩個文件有多難? –

+0

只是做到了,你做得很奇怪。 http://sass-lang.com/guide#topic-5 – Michael

回答

2

我建議你看看event-stream,你可以像這樣爲你styles任務與更清潔的語法結束:

es = require('event-stream'); 

gulp.task('styles', function() { 

    var _css = gulp.src(['../public/bower_components/animate.css/animate.css',  
         '../public/styles/styles.css'], {base: '.'}); 

    var _sass = gulp.src('../scss/styles.scss') 
       .pipe($.sass({ errLogToConsole: true })) 
       .pipe($.autoprefixer('last 2 versions')); 

    return es.merge(_sass, _css) 
      .pipe($.concat('styles.css')) 
      .pipe($.filelog()) 
      .pipe($.size()) 
      .pipe(gulp.dest('./public/styles/')); 

}); 
+0

這項工作就像一個魅力,thnx! –

+0

很高興有幫助:) –

+0

還有一個問題,如果我把路徑的開始移動到底部:'['bower_comp .....','...'],{base:'../ public /'}',它不再包含這些文件。任何建議出了什麼問題? –