6

我在我的项目中使用带有 autoprefixer 的 gulp,我必须像这样使用背景渐变:

background: linear-gradient(#e98a00, #f5aa2f);

但输出是:

background:-webkit-linear-gradient(#e98a00,#f5aa2f);
background:linear-gradient(#e98a00,#f5aa2f);

我怎么了?

Gulpfile.js 的一部分

gulp.task('styles', function() {
  return gulp.src(['css/less/mainPage.less'])
    .pipe(plumber())
    // .pipe(concat('base.scss'))
    .pipe(less())
    .pipe(prefix([{ browsers: ['IE 8', 'IE 9', 'last 5 versions', 'Firefox 14', 'Opera 11.1'] }]))
    .pipe(minifyCSS({keepBreaks: true}))
    .pipe(gulp.dest('css'))
    .pipe(connect.reload());
}); 

我正在使用 gulp-autoprefixer

即使我设置

 browsers: ['Firefox 14']

输出仍然:

 background:-webkit-linear-gradient(#e98a00,#f5aa2f);
 background:linear-gradient(#e98a00,#f5aa2f);
4

3 回答 3

9

将“autoprefixer-core”与“gulp-postcss”一起使用。用法示例:

var MASK_SRC = "./src/mask/page0/";

var gulp = require("gulp")
var plumber = require("gulp-plumber")
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
var autoprefixer = require('autoprefixer-core');
var csso = require("gulp-csso")

gulp.task("styles", function() {
    return gulp.src(MASK_SRC + "scss/*.css")
    //.pipe(plumber())
    .pipe(postcss([ autoprefixer({ browsers: ["> 0%"] }) ]))
    //.pipe(csso())
    .pipe(gulp.dest(MASK_SRC + "/css/"))
})

gulp.task("dev", ["styles"], function() {
  gulp.watch(MASK_SRC + "scss/**/*", function(event) {
    gulp.run("styles")
  })
})
于 2015-03-18T09:42:57.577 回答
1

如果您检查http://caniuse.com/#search=linear-gradient,您会看到 Firefox 至少从版本 30 开始不需要moz-前缀。版本 30 的全球市场份额 < 1% 并且您已设置'> 1%'

于 2014-09-29T11:43:45.317 回答
1

gulp-autprefixer 有一个错误。无法添加“-moz-”前缀。

Autoprefixer 独立运行良好:http: //jsfiddle.net/tsvppawk/

gulp-atuprefixer 中的相同查询“Firefox >= 2”生成:

background: -webkit-linear-gradient(#e98a00, #f5aa2f);
background: linear-gradient(#e98a00, #f5aa2f);
于 2015-03-18T09:29:18.097 回答