1

gulp autoprefixer を使用しようとしていますが、コードをコンパイルすると、パブリック フォルダーに .scss ファイルが作成されます。私のファイル構造は次のとおりです。

ルート > 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']);
});
4

1 に答える 1

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 に渡す前に、自分でそれを行う必要があります。

于 2015-12-03T23:20:35.580 に答える