首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不创建前缀的gulp-sass自动修复程序

不创建前缀的gulp-sass自动修复程序
EN

Stack Overflow用户
提问于 2015-07-18 03:54:16
回答 1查看 318关注 0票数 1

那么,吞咽自动前缀是如何工作的呢?

我的理解是:

代码语言:javascript
复制
transition: max-height 1s ease-in-out; 

应该转换成这个

代码语言:javascript
复制
transition: max-height 1s ease-in-out;
-moz-transition: max-height 1s ease-in-out;
-webkit-transition: max-height 1s ease-in-out;

这是我的代码:

代码语言:javascript
复制
var sass    = require('gulp-sass');
var concat  = require('gulp-concat');
var rename  = require('gulp-rename');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('styles', function() {
  gulp.src('sass/**/*.scss')
    .pipe(autoprefixer('last 2 version'))
    .pipe(sass({ style: 'expanded' }))
    .on("error", handleError)
    .pipe(concat('style.css'))
    .pipe(gulp.dest('./'));
});

我尝试在sass之前和之后移动自动修复程序,但没有收到预期的输出。

EN

回答 1

Stack Overflow用户

发布于 2015-07-18 11:45:50

Sass是一个预处理器,autoprexifer是一个后处理器。但是,您的gulpfile在预处理器之前使用的是后处理器。因此,您只需更改顺序:

代码语言:javascript
复制
var sass         = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('styles', function() {
  return gulp.src('sass/**/*.scss')
    .pipe(sass({ style: 'expanded' }))
    .pipe(autoprefixer('last 2 version'))
    .pipe(gulp.dest(''))
    .on("error", handleError);
});

请注意,我删除了concat管道,因为Sass编译器实际上为您做了这件事。只需确保您在类似main.scss文件的文件中使用@import "foo_partial" (没有前导下划线),并且您的部分文件名具有前导下划线。如果您对此感到困惑,请查看快速文档here

还要注意,我添加了一条return语句,因为这有助于让Gulp能够判断任务何时完成。

预处理器vs后处理器

gulp中的Sass操作将所有部分导入和连接到一个文件中,然后将代码编译成有效的CSS。因此,以前的Sass代码现在变成了CSS。因此,它被称为预处理器,因为它在代码成为CSS之前就完成了自己的工作。

另一方面,Autoprefixer在CSS上工作,而不是在Sass代码上,所以它需要在Sass代码已经转换成CSS之后出现。这就是为什么它被称为后处理器,因为它在代码是CSS之后才做它的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31483715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档