2016-01-29 5 views
0

Я новичок, чтобы глотать и глотать-компас. IMHO, gulp-compass не работает в парадигме потока глотки.Как поместить файл, скомпилированный gulp-compass в поток gulp?

Обычно задача Глотка должна быть что-то вроде:

gulp.src('path/to/src') 
.pipe(doSth) 
.pipe(gulp.dest('path/to/dist')); 

Но следующий код работает для глотка компаса:

gulp.src('') // <-Empty source is OK 
.pipe(compass({ 
    css: 'path/to/dist/css' // <- This is the output dir 
    scss: 'path/to/src/scss' // <- This is the input scss file glob 
})); 
// No dest is needed! 

Это приводит к моей следующей задаче.

|- dist 
|- scss 
    |- app.scss 
|- css 
    |- bootstrap.css 

Я хочу использовать gulp-compass скомпилировать app.scss в app.css, то расслоение app.css с bootstrap.css, то преуменьшать и выход в app-release.css.

Я хочу закончить эту задачу в ONEgulp.task.

function buildCss(inputStream) { // minify and output to dist. 
    return inputStream 
     .pipe(cssnano()) 
     .pipe(gulp.dest('dist')); 
} 

gulp.task('css-build', function() { 
    var stream = gulp.src('scss/app.scss') 
     .pipe(compass({ 
      css: 'css', 
      sass: 'scss' 
     })) 
     .pipe(gulp.src('css/*.css')); // <-- **HERE** 
    return buildCss(stream); 
}); 

Однако Составленный файл app.css не включен в поток ЗДЕСЬ.

Какое решение?

ответ

0

Я мог бы исправить эту проблему, используя merge-stream.

gulp.task('css', function() { 
    var scss = gulp.src('scss/*.scss') 
    .pipe(compass({ 
     css: 'css', 
     sass: 'scss' 
    })); 
    var css = gulp.src('css/bootstrap.css'); 
    var stream = merge(scss, css) 
    .pipe(concat('app-release.css')); 
    return buildCss(stream); 
});