javascript gulp - 缩小 CSS 时排除文件
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22350791/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
gulp - exclude a file when minifying CSS
提问by Oam Psy
Im new to Gulp.. I have been able to successfully install and concatenate and minify my .js and .css files, however, there is one .css file which i want to exclude - print.css
我是 Gulp 的新手。我已经能够成功安装、连接和缩小我的 .js 和 .css 文件,但是,我想排除一个 .css 文件 - print.css
Ive followed the instructions here: https://www.npmjs.org/package/gulp-ignoreinstall gulp-ignore in my local directory, and modified my gulpfile.js to:
我按照这里的说明操作: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'))
});
Within my CSS Task - Secure, i have included .pipe(exclude('Secure/css/print.css'))
在我的 CSS 任务 - 安全中,我包含了 .pipe(exclude('Secure/css/print.css'))
When i run gulp minify-css-secure, the task completes but upon inspecting the new all.min.css, i cant see the contents of print.css within there too.
当我运行 gulp minify-css-secure 时,任务完成但在检查新的 all.min.css 时,我也看不到那里的 print.css 的内容。
回答by t3chn0b0y
It's unclear what you are trying to achieve. If I get it right, you want to:
目前尚不清楚您要实现的目标。如果我做对了,你想:
- minify all css files (including print.css)
- concat all files except print.css into all.min.css
- put minified all.min.css and print.css into destination folder
- 缩小所有 css 文件(包括 print.css)
- 将除 print.css 之外的所有文件连接到 all.min.css
- 将缩小的 all.min.css 和 print.css 放入目标文件夹
To achieve that, you can use StreamQueue. (source)
为此,您可以使用StreamQueue。(来源)
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'))
});
If you want to just exclude some files, you don't need gulp-ignore. Gulp supports ignore globs.
Just prefix the path to exclude with bang.
Like this:
如果您只想排除某些文件,则不需要 gulp-ignore。Gulp 支持忽略全局。只需在要排除的路径前加上 bang。
像这样:
stylesAuth: ['Auth/css/*.css', '!Auth/css/print.css']