【问题标题】:Why is gulp autoprefixer outputting unchanged css?为什么 gulp autoprefixer 输出不变的 css?
【发布时间】:2020-05-18 00:47:09
【问题描述】:

我正在学习使用 Flexbox,并且正在尝试添加前缀。 Gulp 以一种我不知道如何解释的方式做出回应。出于某种原因,当我尝试使用 Gulp 自动前缀时出现以下错误:

[19:21:22] Starting 'styles'...
[19:21:22] The following tasks did not complete: styles
[19:21:22] Did you forget to signal async completion?

这是我的“gulpfile.js”:

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

gulp.task('styles', () => {
  gulp.src('styles.css')
    .pipe(autoprefixer())
    .pipe(gulp.dest('build'));
});

这是“styles.css”文件:

.container {
  display: flex;
}
.item {
  flex-direction: column;
}

但是,'build/styles.css' 的输出与上面完全相同——没有前缀。

我已经尝试将浏览器列表添加到 package.json,使函数异步,并通过 postcss 运行它。一切都还没有改变。想法?

【问题讨论】:

    标签: css flexbox gulp autoprefixer


    【解决方案1】:

    autoprefixer 使用 Browserslist,尝试添加配置文件 .browserslistrc 和如下代码或您的设置。

    参考:

    我的 .browserslistrc

    last 2 version
    
    `> 5%`
    
    `IE 10 # sorry`
    

    关于

    [19:21:22] 以下任务未完成:样式

    [19:21:22] 您是否忘记发出异步完成信号?

    我认为 gulp 函数需要返回一个函数,而不是一个 void 函数

    可以在 gulpjs.com 上查看文档

    参考:

    我的 gulpfile.js

    const gulp = require('gulp');
    const autoprefixer = require('gulp-autoprefixer');
    
    gulp.task('styles', () => {
      return gulp.src('styles.css')
        .pipe(autoprefixer())
        .pipe(gulp.dest('build'));
    });
    

    【讨论】:

    • 当我只在里面放“last 2 version”时,使用 .browserslistrc 有效!不过,它不喜欢> 5%。我还必须将箭头函数转换为异步函数,并在调用“gulp”之前放置“await”。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2014-04-25
    相关资源
    最近更新 更多