我最近从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;
}
}
}
}
}
}
}
如果有人能提供任何见解,我会非常感激!
谢谢! :)
答案 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 + '-';
}