javascript - gulp - 缩小 CSS 时排除文件

标签 javascript optimization preprocessor gulp

我是 Gulp 的新手。我已经能够成功安装、连接和缩小我的 .js 和 .css 文件,但是,有一个我想排除的 .css 文件 - print.css

我按照此处的说明操作:https://www.npmjs.org/package/gulp-ignore在我的本地目录中安装 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(exclude('Secure/css/print.css'))

当我运行 gulp minify-css-secure 时,任务完成但在检查新的 all.min.css 时,我也看不到其中的 print.css 的内容。

最佳答案

不清楚您要实现的目标。如果我做对了,你想:

  1. 缩小所有 css 文件(包括 print.css)
  2. 将除 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-ignore。 Gulp 支持忽略 glob。 只需在要排除的路径前添加 bang。
像这样:

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

关于javascript - gulp - 缩小 CSS 时排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22350791/

相关文章:

javascript - react 或 npm 问题 : Module not found: [CaseSensitivePathsPlugin] `...\react.js` does not match the corresponding path on disk `react`

javascript - 如何编写 Mongoose 查询来组合两个模型的数据?

javascript - 如何构造 Immutable.Record 的子类?

ios - 在 UIButton 上找到 touchDragInside 发送事件的方向

C++ 优化这个算法

Javascript存储(firebase)firestore数据总是覆盖第一部分数据

mysql - 我该如何优化这个 MySQL 查询?

使可变长度输入参数无效的 C 宏

preprocessor - 区分 ifort 和其他 fortran 编译器的宏是什么?

c# - 如何防止方法在 C# .NET 中接受 2 false bool?