gulp - sass编译遇到 @media screen\0失败

查看:235
本文介绍了gulp - sass编译遇到 @media screen\0失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

项目中用的Lavavel5,还用到了angualr-material。在编译
angular-material.css遇到问题。
原css文件存在很多@media screen\0

@media screen\0 {
  [flex] {
    -webkit-flex: 1 1 0%;
        -ms-flex: 1 1 0%;
            flex: 1 1 0%;
}

我把@media screen\0全部替换为@media screen就能编译通过了。
经查@media screen\0是兼容ie的写法。
有没有其他解决方法?

解决方案

首先,angular-material 添加这个是为了兼容 IE, 我们可以看 angular-metarial 的 source code 中的 build-sass.js看看它是如何build sass, 看代码


  streams.push(
    scssPipe = gulp.src(getPaths())
      .pipe(util.filterNonCodeFiles())
      .pipe(filter(['**', '!**/*.css']))
      .pipe(filter(['**', '!**/*-theme.scss']))
      .pipe(filter(['**', '!**/*-print.scss']))
      .pipe(filter(['**', '!**/*-attributes.scss']))
      .pipe(concat('angular-material.scss'))
      .pipe(gulp.dest(dest))                            // raw uncompiled SCSSS
  );

  streams.push(
    scssPipe
          .pipe(sass())
          .pipe(util.autoprefix())
          .pipe(insert.prepend(config.banner))
          .pipe(addsrc.append(config.cssIEPaths))       // append raw CSS for IE Fixes
          .pipe(concat('angular-material.css'))
          .pipe(gulp.dest(dest))                        // unminified
          .pipe(gulpif(!IS_DEV, minifyCss()))
          .pipe(rename({extname: '.min.css'}))
          .pipe(gulp.dest(dest))                        // minified
  );

注意观察 config.cssIEPaths 这个是包含 @media screen\0 { 这样代码的css文件的路径(例子), 这个config可以在config.js中查到。

注意观察这些ie_fixes.css并没有在scss文件里,而是 append 到最终的 angular-material.css 文件中,所以我不明白,为什么要用sass再编译一遍css呢?

这篇关于gulp - sass编译遇到 @media screen\0失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆