2014-07-19 58 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 /'}',它不再包含这些文件。任何建议出了什么问题? –