据我所知,你是不可能的。
有:
<!-- build:css css/combined.css --> <link href="css/one.css" rel="stylesheet"> <link href="css/two.css" rel="stylesheet"> <link rel="stylesheet/less" type="text/less" href="less/website.less" /> <!-- endbuild -->
useref.assets为css / combined.css创建一个流,其中包含css / one.css,css / two.css less / website.less的内容。因为您的流的名称是 css/combined.css 只有 .pipe(gulpif('*.css', cssmin())) 火柴。
css/combined.css
.pipe(gulpif('*.css', cssmin()))
如果你使用 .pipe(gulpif('*.css', less())) ,编译器会将所有三个文件的内容编译成css / combined.css。
.pipe(gulpif('*.css', less()))
所以你可以使用:
.pipe(gulpif('*.css', less())) .pipe(gulpif('*.css', cssmin()))
上面使用Less编译器编译你的* .css和* .less文件(因为Less可以编译css,结果可能符合预期)
尝试添加自定义类型
var assets = useref.assets({ searchPath: '.', types: ['js', 'css', 'less'] });
var gulp = require('gulp'); var sass = require('gulp-sass'); var concat= require('gulp-concat'); var minifyCss = require('gulp-cssnano'); var uglify = require('gulp-uglify'); var pump = require('pump'); var useref = require('gulp-useref'); gulp.task('sass', function(){ gulp.src(['css/**/*.scss' ,'css/**/*.css' ]) .pipe(sass()) // Using gulp-sass .pipe(minifyCss()) .pipe(concat('all.css')) .pipe(gulp.dest('build/css')) }); gulp.task('compressJS', function (cb) { return gulp.src(['lib/*.js']) .pipe(concat('concat.js')) .pipe(uglify()) .pipe(gulp.dest('build/js')) }); var gulp = require('gulp'), useref = require('gulp-useref'); gulp.task('default', ['sass'] , function () { //薪械屑邪 return gulp.src('*.html') .pipe(useref()) .pipe(gulp.dest('dist')); });
然后包含由gulp.task('sass')生成的文件all.css
<link rel="stylesheet" href="css/all.css" >