系统和grunt-contrib-compass之间的SASS版本不匹配?

时间:2014-05-28 12:32:50

标签: sass gruntjs yeoman compass-sass grunt-contrib-compass

我在grunt-contrib-sass / compass中遇到了以下问题:

https://github.com/nex3/sass/issues/746

编译:

.badge {

    border: 1px solid black;

    &-info {
        background:blue;
    }
}

错误:

Sass Error: Invalid CSS after " &": expected "{", was "-info {"
"-info" may only be used at the beginning of a compound selector.

我在系统上安装了最新的SASS版本(3.3.7)(Ubuntu 12.04.4 LTS),并在命令行中运行scss上一个代码为DO的新文件。

然而,使用Grunt使用yo webapp(Yeoman generator-webapp)创建一个新项目会出现上述错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

正如@cimmanon所说,这可能是由于SASS和指南针之间的版本冲突造成的。

由于Compass使用它自己的SASS版本而且我使用的是grunt-contrib-compass(而不是SASS),而我的Compass版本是< 1 - 效果是我的系统上的3.3版本没有被使用。

在使用开箱即用的Yeoman发电机时注意这一点。

答案 1 :(得分:-1)

因此,当用3.3.6的SASS编译时,我得到:

.badge {
  border: 1px solid black;
}
.badge-info {
  background: blue;
}

但是使用3.2.19我会遇到同样的错误:

Invalid CSS after "    &": expected "{", was "-info {"

"-info" may only be used at the beginning of a compound selector.

以这种方式使用后缀是一个相当复杂的历史,请参阅:A Change in Plans for Sass 3.3

因此,您的工具链中某处存在SASS版本问题。