2014-03-12 24 views
4

Im新增了一些Gulp ..我已经能够成功安装和连接并缩小我的.js和.css文件,但是,有一个.css文件需要排除 - print.cssgulp - 在缩小CSS时排除一个文件

伊夫按照说明这里: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任务 - 安全,我已经包括.pipe (排除('Secure/css/print.css'))

当我运行lp minify -css-secure,任务完成,但在检查新的all.min.css时,我不能在那里看到print.css的内容。

回答

20

目前尚不清楚你试图达到什么目的。如果我得到它的权利,你想:

  1. 缩小所有的CSS文件(包括print.css)
  2. Concat的所有文件,除了print.css到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