gulp autoprefixer编译为.scss而不是.css

时间:2015-12-03 23:09:51

标签: javascript sass gulp autoprefixer

我尝试使用gulp autoprefixer,但是当它编译代码时,它会在我的公共文件夹中创建一个.scss文件。 我的文件结构如下:

Root> dev> sass> main.scss

&安培;

公开> css>的main.css

当我在main.scss中进行更改时,一般的sass代码编译得很好,但是当使用autoprefix时,它会在我的public / css目录中创建一个main.scss文件。

我的gulpfile.js如下:

var gulp = require('gulp');
var sass = require('gulp-sass');

var gulp = require('gulp');
var sass = require('gulp-sass');

var autoprefixer = require('gulp-autoprefixer');


gulp.task('styles', function() {
    gulp.src('./dev/sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./public/css/'));
});

gulp.task('autoprefixer', function () {
    return gulp.src('./dev/sass/**/*.scss')
        .pipe(autoprefixer({
            browsers: ['last 2 versions'],
            cascade: false
        }))
        .pipe(gulp.dest('./public/css/'));
});

//Watch task
gulp.task('default',function() {
    gulp.watch('./dev/sass/**/*.scss',['styles', 'autoprefixer']);
});

1 个答案:

答案 0 :(得分:1)

你错过了autoprefixer任务中的sass编译。

应该是

gulp.task('autoprefixer', function () {
    return gulp.src('./dev/sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(autoprefixer({
            browsers: ['last 2 versions'],
            cascade: false
        }))
        .pipe(gulp.dest('./public/css/'));
});

Autoprefixer适用于普通css,不编译sass。因此,在通过autoprefixer传递流之前,您必须自己完成。