Css 自动换气器不工作

Css 自动换气器不工作,css,sass,gulp,autoprefixer,Css,Sass,Gulp,Autoprefixer,我无法让AutoRefixer与Gulp一起工作。我在CSS、渐变和变换中使用不透明度,并且没有显示任何供应商前缀。否则,其他一切都会起作用 这是我的吞咽文件: var gulp = require('gulp'); var lr = require('tiny-lr'); var jshint = require('gulp-jshint'); var sass = require('gulp-sass'); var autoprefixer = require('gulp-autopref

我无法让AutoRefixer与Gulp一起工作。我在CSS、渐变和变换中使用不透明度,并且没有显示任何供应商前缀。否则,其他一切都会起作用

这是我的吞咽文件:

var gulp = require('gulp');

var lr = require('tiny-lr');
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var minifycss = require('gulp-minify-css');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var livereload = require('gulp-livereload');
var server = lr();
var plumber = require('gulp-plumber');

var onError = function (err) {  
  gutil.beep();
  console.log(err);
};

gulp.task('lint', function() {
    return gulp.src('js/all.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});

gulp.task('sass', function() {
    return gulp.src('scss/*.scss')
        .pipe(sass({errLogToConsole: true}))
        .pipe(autoprefixer('last 2 versions', 'safari 5', 'ie6', 'ie7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
        .pipe(minifycss())
        .pipe(gulp.dest(''))
        .pipe(plumber({
            errorHandler: onError
        }))
        .pipe(livereload(server));
});


gulp.task('scripts', function() {
    return gulp.src(['js/fittext.js', 'js/fitvids.js', 'js/snap-scroll.js', 'js/cycle-min.js', 'js/all.js', 'js/respond.js'])
        .pipe(concat('all.js'))
        .pipe(gulp.dest('js/min'))
        .pipe(rename('main.min.js'))
        .pipe(gulp.dest('js/min'))
        .pipe(plumber({
            errorHandler: onError
        }))
        .pipe(livereload(server));
});

gulp.task('watch', function() {
    livereload.listen();
    gulp.watch('**/*.php').on('change', livereload.changed);
    gulp.watch('js/*.js', ['scripts']);
    gulp.watch('scss/**/*.scss', ['sass']);  
});

gulp.task('default', ['lint', 'sass', 'scripts', 'watch']);
  • 我搜索并尝试了各种解决这个问题的方法,但都没有成功。我还尝试将
    .pipe(gulp.dest(“”))
    更改为特定目录(如),但没有任何运气
我感谢你能提供的任何帮助

*更新*


我想指出我对Autoprefixer添加不透明度前缀的天真态度,但它显然不这样做。

这应该可以工作,将浏览器放在一个数组中,而不是作为参数:

.pipe(autoprefixer({
    overrideBrowserlist: ['last 2 version', 'safari 5', 'ie6', 'ie7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4']
})
您可以通过设置为true或false来添加级联
cascade:false
我看到的第一件事是:

.pipe(autoprefixer('last 2 versions'))
这里的语法有一个小小的变化:

.pipe(autoprefixer('last 2 version'))
除此之外,我还成功地通过管道将编译后的sas传输到目标,然后运行autoprefixer

.pipe(sass())
.pipe(gulp.dest(''))
.pipe(autoprefixer())
这个海湾文件:

var gulp = require('gulp');
var sass = require('gulp-sass');
var prefix = require('gulp-autoprefixer');
var minify = require('gulp-minify-css');
var plumber = require('gulp-plumber');

function onError(err) {
    console.log(err);
}

gulp.task('sass', function(){
    return gulp.src('src/style.scss')
        .pipe(sass())
        .pipe(prefix('last 2 versions'))
        .pipe(minify())
        .pipe(gulp.dest('css/'))
        .pipe(plumber({
            errorHandler: onError
        }))
});
使用此SCS:

body {
    opacity: .5;
    box-sizing: border-box;
    transform: scale(.5);
    display: flex;
}
生成此输出:

body{opacity:.5;box-sizing:border-box;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}
所以,除了列出不同的浏览器外,我不确定我到底在做什么。但我想你已经试过移除这些东西了。

这应该可以

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

gulp.task('styles', function(){
    return gulp.src('css/styles.css')
   .pipe(autoprefixer('last 2 versions'))
   .pipe(gulp.dest ('build'));
});

gulp.task('watch', function(){
    gulp.watch('css/styles.css', gulp.series(['styles']));
});

我知道这个问题不久前就被问到了,但我偶然发现了一个类似的问题

以下是我解决问题的方法:

  • browserlist
    条目添加到
    package.json
  • 安装
    autoprefixer
  • npmi--保存开发自动引用器

  • 安装
    postsss
  • npmi——保存开发后处理

  • gulpfile.js
    中的管道修改为:

  • 也许这是最好的办法。减少谢谢你。我基本上和你一样从零开始,现在开始工作了。我很感激,伙计。对我来说,不幸的是,它不起作用:。我没有得到带有gulp-ruby-sass的前缀。非常感谢你抽出时间来帮助我。我将继续使用一个数组。棒极了,像一个符咒一样工作。但是,您应该为
    ie 6
    ie 7
    替换
    ie6
    ie7
    ,否则您将得到以下错误:
    BrowserslistError:Unknown browser query
    感谢您花时间帮助我。我像@donnywals建议的那样从零开始,现在开始工作了。在gulp autoprefixer中使用“last 2 versions”添加到@bogatyrjov注释是正确的。示例中的管道顺序不正确。首先,代码应该自动刷新,然后放入一个新的目标,该目标解析为
    .pipe(sass()).pipe(autoprefixer()).pipe(gulp.dest(“”))
    。谢谢。这似乎更符合最新情况,并符合以下说明:
    {
    "browserslist": [
        'last 2 versions', 
        'safari 5', 
        'ie6', 
        'ie7', 
        'ie 8',
        'ie 9', 
        'opera 12.1', 
        'ios 6', 
        'android 4'
      ]
    }
    
    gulp.task('sass', function() {
        return gulp.src('scss/*.scss')
            .pipe(sass({errLogToConsole: true}))
            .pipe(postcss([autoprefixer()]))
            .pipe(minifycss())
            .pipe(gulp.dest(''))
            .pipe(plumber({
                errorHandler: onError
            }))
            .pipe(livereload(server));
    });