Глоток конкат после нахальный

Я хотел бы взять вывод sass и объединить его в другой обычный файл CSS.

пример:

animate.css
app.scss

return gulp.src('app.scss')
    .pipe(sass({
        errLogToConsole: true
    }))
    .pipe(concat(['animate.css', OUTPUT_OF_THE_SASS_ABOVE]))
    .pipe(gulp.dest(paths.public+'css/'))
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest('css/'))
    .on('end', done);

есть идеи как это сделать?

******* ИДЕЯ

возможно, возможно ли сгенерировать файл css из sass во временную папку, затем объединить его с файлами css, и они просто удалили его. Есть идеи, как это сделать, в одной задаче?

2 ответа

Решение

gulp-concat будет только конкатать файлы, которые были указаны gulp.src в текущем потоке. Если вы только указали app.scssВы не можете объединить дополнительные файлы в этом потоке.

Это не значит, что вы не можете создать новый поток, содержащий app.scss скомпилированный вывод и включает в себя animate.css также.

Для этого вам понадобится merge-stream (npm install merge-stream):

var gulp,
    sass,
    merge,
    concat,
    rename;

//load dependencies
gulp = require('gulp');
sass = require('gulp-sass');
merge = require('merge-stream');
concat = require('gulp-concat');
rename = require('gulp-rename');

//define default task
gulp.task('default', function () {
    var sassStream,
        cssStream;

    //compile sass
    sassStream = gulp.src('app.scss')
        .pipe(sass({
            errLogToConsole: true
        }));

    //select additional css files
    cssStream = gulp.src('animate.css');

    //merge the two streams and concatenate their contents into a single file
    return merge(sassStream, cssStream)
        .pipe(concat('app.css'))
        .pipe(gulp.dest(paths.public + 'css/'));
});

Почему бы не включить animate.css как частичное в основной файл Sass?

@import "animate";

А затем переименуйте animate.css в _animate.css

Вы также получаете больше контроля над тем, как / где компилируется ваш CSS.

Другие вопросы по тегам