2014-03-12 3 views
4

Im new to Gulp .. Я смог успешно установить и объединить и минимизировать мои .js и .css-файлы, однако есть один .css-файл, который я хочу исключить - print.cssgulp - исключить файл при минимизации CSS

Ive следовал инструкциям здесь: https://www.npmjs.org/package/gulp-ignore установить глоток игнорируемым в моем локальном каталоге, и изменить мой gulpfile.js к:

// Include gulp 
var gulp = require('gulp'); 

// Include Our Plugins 
var jshint = require('gulp-jshint'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename'); 
var minifyCSS = require('gulp-minify-css'); 
var imagemin = require('gulp-imagemin'); 
var exclude = require('gulp-ignore').exclude; 


var paths = { 
    scriptsNonAuth: ['Non-Auth/javascript/*.js'], 
    scriptsAuth: ['Auth/javascript/*.js'], 
    stylesNonAuth: ['Non-Auth/css/*.css'], 
    stylesAuth: ['Auth/css/*.css'], 
}; 

// CSS Task - Non Authenticated 
gulp.task('minify-css-non-auth', function() { 
    gulp.src(paths.stylesNonAuth) 
    .pipe(minifyCSS(opts)) 
    .pipe(concat('all.min.css')) 
    .pipe(gulp.dest('Non-Auth/css')) 
}); 

// CSS Task - Authenticated 
gulp.task('minify-css-auth', function() { 
    gulp.src(paths.stylesAuth) 
    .pipe(minifyCSS(opts)) 
    **.pipe(exclude('Auth/css/print.css'))** 
    .pipe(concat('all.min.css')) 
    .pipe(gulp.dest('Auth/css')) 
}); 

в моем CSS задачи - Secure, я включил .pipe (исключить ('Secure/css/print.css'))

Когда я запускаю gu lp minify-css-secure, задача завершается, но после проверки нового all.min.css, я не вижу там содержимого print.css.

ответ

20

Непонятно, чего вы пытаетесь достичь. Если я правильно, вы хотите:

  1. Минимизировать все файлы CSS (включая print.css)
  2. CONCAT все файлы, кроме print.css Into all.min.css
  3. пут уменьшенной all.min .css и print.css в папку назначения

Для этого вы можете использовать StreamQueue. (source)

var streamqueue = require('streamqueue'); 

var paths = { 
    scriptsNonAuth: ['Non-Auth/javascript/*.js'], 
    scriptsAuth: ['Auth/javascript/*.js'], 
    stylesNonAuth: ['Non-Auth/css/*.css'], 
    stylesAuth: ['Auth/css/*.css', '!Auth/css/print.css'], 
}; 

gulp.task('minify-css-auth', function() { 
    return streamqueue({ objectMode: true }, 
    gulp.src(paths.stylesAuth) 
     .pipe(minifyCSS(opts)) 
     .pipe(concat('all.min.css')), 
    gulp.src('Auth/css/print.css')) 
     .pipe(minifyCSS(opts)) 
) 
    .pipe(gulp.dest('Auth/css')) 
}); 

Если вы просто хотите исключить некоторые файлы, вам не нужно глоток-игнорировать. Gulp поддерживает игнорирование глобусов. Просто префикс пути для исключения с ударом.
Как это:

stylesAuth: ['Auth/css/*.css', '!Auth/css/print.css'] 
+3

пальцы для последней части: за исключением с челкой – Alp