在 gulp-postcss 内部或外部使用 autoprefixer 有什么区别?

What's the difference between using autoprefixer within gulp-postcss or outside of it?

我正在使用 Gulp 并使用过 Gulp Autoprefixer 独立版,例如:

gulp.task('styles', function() {
    gulp.src('scss/**/*.scss')
        //.................
        .pipe(sass())
        .pipe(autoprefixer({
            browsers: [
              //..........
            ],
        }))
        //............
});

...但后来我看到 Gulp Postcss plugin which seems to wrap the usage of a non-gulp autoprefixer 例如:

gulp.task('styles', function() {
    gulp.src('scss/**/*.scss')
    //.................
            .pipe(sass())
            .pipe(postcss([
                autoprefixer({
                    browsers: [
                        //.......
                    ],
                }),
            ]))
    //............
});

有什么区别?

A​​utoprefixer 只是一个 PostCSS 插件。没有 PostCSS.

就无法 运行

gulp-autoprefixer把PostCSS藏在里面。就像 gulp-postcss(autoprefixer) 的快捷方式。这是 运行 Autoprefixer 的非官方方式。

A​​utoprefixer 作者建议只使用 gulp-postcss,因为:

  • 您将更快地获得 Autoprefixer 更新。
  • 您可以将 Autoprefixer 与其他 PostCSS-based 工具结合使用以提高性能。解析步骤(CSS 处理中最长的)将只对所有 PostCSS-based 工具(包括 Autoprefixer)执行一次。
  • 这是官方方式,Autoprefixer 和 PostCSS 团队对其进行了更好的测试。