我不能让吞咽正常工作。
如果效果好的话:
gulp.task('css', function() {
return gulp.src([
// 'bower_components/bootstrap/dist/css/bootstrap.css',
'app/stylesheets/main.less',
])
.pipe(less({
strictMath: true,
strictUnits: true,
}))
.pipe(concat('all.css', {newLine: '\n'}))
.pipe(prefixer('> 1%'))
.pipe(minifyCss())
.pipe(gulp.dest('public/css'));
});但是,当我将gulp-if添加到混合时,当gulpif管道返回到主流时,它将不会返回任何内容:
gulp.task('css', function() {
return gulp.src([
'bower_components/bootstrap/dist/css/bootstrap.css',
'app/stylesheets/main.less',
])
.pipe(gulpif(/\.less$/,less({
strictMath: true,
strictUnits: true,
})))
.pipe(concat('all.css', {newLine: '\n'}))
.pipe(prefixer('> 1%'))
.pipe(minifyCss())
.pipe(gulp.dest('public/css'));
});为什么会这样呢?我做错了什么?如果我将一些日志添加到gulp-if源代码中,我可以看到条件正在传递。
发布于 2014-04-17 15:59:31
我认为您可能希望使用gulp-filter:https://www.npmjs.org/package/gulp-filter
gulp.task('css', function() {
var lessFilter = gulpFilter('**/*.less', {restore: true})
return gulp.src([
'bower_components/bootstrap/dist/css/bootstrap.css',
'app/stylesheets/main.less',
])
.pipe(lessFilter)
.pipe(less({
strictMath: true,
strictUnits: true,
}))
.pipe(lessFilter.restore)
.pipe(concat('all.css', {newLine: '\n'}))
.pipe(prefixer('> 1%'))
.pipe(minifyCss())
.pipe(gulp.dest('public/css'));
});这将创建一个过滤的流,restore()将恢复该流。gulpIf用于有条件地处理整个流,而不仅仅是匹配文件。
gulp.src('src/**/*.js', function () {
.pipe(gulpIf(isProduction, concat('all.js')))
.pipe(gulp.dest('dest/')
});发布于 2014-05-12 04:15:12
这听起来像是gulp-if中的一个bug。尝试将gulp-if升级到最新版本,如果不起作用,请在https://github.com/robrich/gulp-if/issues上发布一个问题。
发布于 2017-03-02 09:56:55
gulp.task('css', function() {
var condition = function(file) {
if (file.extname == '.less') return true;
};
return gulp.src([
'bower_components/bootstrap/dist/css/bootstrap.css',
'app/stylesheets/main.less',
])
.pipe(gulpif(condition, less({
strictMath: true,
strictUnits: true,
})))
.pipe(concat('all.css', {newLine: '\n'}))
.pipe(prefixer('> 1%'))
.pipe(minifyCss())
.pipe(gulp.dest('public/css'));
});https://stackoverflow.com/questions/23101139
复制相似问题