Как минимизировать css после конкатенации? Проблема при использовании Gulp

Я использую следующую задачу в gulp, чтобы объединить некоторые файлы CSS.

Скрипт работает нормально, и я могу получить уникальный файл «app-flat.css» со всеми CSS. Но я не могу минимизировать "app-flat.css", используя следующую строку

.pipe(minifyCss()) 

Мне нужно минимизировать результат concat "app-flat.css".

Не могли бы вы сказать мне, что не так в моем сценарии? Должен ли я поместить .pipe(minifyCss()) в качестве последнего процесса?

var gulp = require('gulp');
var gutil = require('gulp-util');
var connect = require('gulp-connect');
var open = require('open');
var jscs = require('gulp-jscs');
var jshint = require('gulp-jshint');
var stylish = require('gulp-jscs-stylish');
var sloc = require('gulp-sloc');
var complexity = require('gulp-complexity');

var stylus = require('gulp-stylus');
var nib = require('nib');
var concat = require('gulp-concat');
var header = require('gulp-header');
var fs = require('fs');
var merge = require('merge-stream');
var minifyCss = require('gulp-minify-css');
var gp_uglify = require('gulp-uglify');
    gulp.task('theme-flat', function () {
        gulp.src([
            'themes/a/a.css',
            'themes/b/b.css'])
          .pipe(concat('app-flat.css'))
          .pipe(minifyCss())  // problem here
          .pipe(header(fs.readFileSync('copyright.txt', 'utf8')))
          .pipe(gulp.dest('themes/flat/'));
    });

Примечания: я могу использовать другой минификатор, такой как uglify или другие, поскольку я не ограничиваюсь только gulp-minify-css.


person GibboK    schedule 15.12.2015    source источник
comment
Это, вероятно, будет вам полезно stackoverflow.com/questions/24591854/   -  person sailens    schedule 15.12.2015
comment
@sailens, пожалуйста, обратите внимание, что мой скрипт использует gulp-minify-css, спасибо за ваше время на это   -  person GibboK    schedule 15.12.2015
comment
Просто чтобы быть уверенным: можете ли вы вставить свой var/require?   -  person enguerranws    schedule 15.12.2015


Ответы (2)


Вы должны добавить concat pipe:

gulp.src('src/css/**/*.css')
    .pipe(minifyCSS())
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9'))
    .pipe(concat('app-flat.css'))
    .pipe(gulp.dest('dist/css'))
person Medhat    schedule 15.12.2015

Я думаю, позвоните мне, если я ошибаюсь. Вы пытаетесь минимизировать файл после того, как уже создали app-flat.css файл. Вам нужно pipe пройти его до того, как вы начнете concat

   gulp.task('theme-flat', function () {
        gulp.src([
            'themes/a/a.css',
            'themes/b/b.css'])
          .pipe(minifyCss())  // before you concat you're file
          .pipe(header(fs.readFileSync('copyright.txt', 'utf8')))
          .pipe(concat('app-flat.css'))
          .pipe(gulp.dest('themes/flat/'));
    });
person pourmesomecode    schedule 15.12.2015