Sass无法编译mixin变量

时间:2016-10-21 01:08:18

标签: sass mixins

我最近从templatemonster.com购买了一个包含SASS源的模板。
我尝试使用sass --update style.scss编译它,但它停止并输出:

Error: Invalid CSS after "...x: #{$postfix}-": expected expression (e.g. 1px, bold), was ";"
    on line 7 of custom/mixins/_indent-utilities.scss

违规代码是mixin。
据我所知,SASS正在不断改变处理变量的方式。
当前版本3.4.22返回此错误。
首先,我想到也许有些东西已被弃用了,所以我尝试了一些其他任意版本的SASS,但无济于事。
不幸的是,模板没有gemfile,所以我不知道它的依赖是什么。

这是违规代码:

@mixin indent-responsive($preffix, $postfix, $rules, $medias, $offsets) {
  @if ($postfix != '' and $postfix != null) {
    $postfix: #{$postfix}-;
  }

  @if ($preffix != '' and $preffix != null) {
    $preffix: #{$preffix}-;
  }

  @each $resolution, $alias in $medias {
    @if ($resolution == 0) {
      @each $offset in $offsets {
        .#{$preffix}#{$postfix}#{strip-unit($offset)} {
          @each $rule in $rules {
            #{$rule}: $offset;
          }
        }
      }
    } @else {
      @media (min-width: $resolution) {
        @each $offset in $offsets {
          .#{$preffix}#{$alias}-#{$postfix}#{strip-unit($offset)} {
            @each $rule in $rules {
              #{$rule}: $offset;
            }
          }
        }
      }
    }
  }
}

如果有人能提供任何见解,我会非常感激!

谢谢! :)

1 个答案:

答案 0 :(得分:1)

看起来它没有正确处理字符串/插值。尝试更改此内容:

  @if ($postfix != '' and $postfix != null) {
    $postfix: #{$postfix}-;
  }

  @if ($preffix != '' and $preffix != null) {
    $preffix: #{$preffix}-;
  }

到此:

  @if ($postfix != '' and $postfix != null) {
    $postfix: $postfix + '-';
  }

  @if ($preffix != '' and $preffix != null) {
    $preffix: $preffix + '-';
  }