2014-03-12 30 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

相關問題