忽略空 css 文件
Ignore empty css files
我正在使用 gulp 从 less 文件生成 css 和 min.css 文件。然而,一些 less 文件没有 css 输出(比如 variables.less 只是定义导入变量)。
有没有办法跳过此文件的空 css 流输出?
这是编译所有less文件的当前代码:
var config = {
lessSrc: './Content/**/*.less'
};
gulp.task('css:lessmin', function () {
gulp.src(config.lessSrc, { base: '.' })
.pipe(less())
.pipe(gulp.dest('.'))
.pipe(minifyCss())
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest('.'));
});
我可以将 lessSrc 更改为仅指定我要编译的文件或忽略我不想生成 css 和 min.css 文件的文件,但我有很多情况那,不仅仅是在较少的文件中。
一个不错的选择是使用过滤器,过滤通配集的空结果:
var gulp = require('gulp');
var filter = require('gulp-filter');
var less = require('gulp-less');
gulp.task('less', function() {
return gulp.src('*.less')
.pipe(filter(function(file) {
return file.stat && file.contents.length;
}))
.pipe(less())
.pipe(gulp.dest('.'));
});
您将虚拟文件对象传递给您的流,每个虚拟文件对象都包含文件的内容和信息。 stat 对象不仅告诉您它已经加载,而且还告诉您它是否是一个文件。内容是一个缓冲区。通过长度,您可以检查其中是否真的有任何内容。注意:这对处理空格没有帮助。该文件必须 确实 为空。
我正在使用 gulp 从 less 文件生成 css 和 min.css 文件。然而,一些 less 文件没有 css 输出(比如 variables.less 只是定义导入变量)。
有没有办法跳过此文件的空 css 流输出?
这是编译所有less文件的当前代码:
var config = {
lessSrc: './Content/**/*.less'
};
gulp.task('css:lessmin', function () {
gulp.src(config.lessSrc, { base: '.' })
.pipe(less())
.pipe(gulp.dest('.'))
.pipe(minifyCss())
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest('.'));
});
我可以将 lessSrc 更改为仅指定我要编译的文件或忽略我不想生成 css 和 min.css 文件的文件,但我有很多情况那,不仅仅是在较少的文件中。
一个不错的选择是使用过滤器,过滤通配集的空结果:
var gulp = require('gulp');
var filter = require('gulp-filter');
var less = require('gulp-less');
gulp.task('less', function() {
return gulp.src('*.less')
.pipe(filter(function(file) {
return file.stat && file.contents.length;
}))
.pipe(less())
.pipe(gulp.dest('.'));
});
您将虚拟文件对象传递给您的流,每个虚拟文件对象都包含文件的内容和信息。 stat 对象不仅告诉您它已经加载,而且还告诉您它是否是一个文件。内容是一个缓冲区。通过长度,您可以检查其中是否真的有任何内容。注意:这对处理空格没有帮助。该文件必须 确实 为空。