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

系统和grunt contrib compass之间的SASS版本不匹配?,sass,gruntjs,yeoman,compass-sass,grunt-contrib-compass,Sass,Gruntjs,Yeoman,Compass Sass,Grunt Contrib Compass,我在grunt contrib sass/compass中遇到了以下问题: () 汇编此文件: .badge { border: 1px solid black; &-info { background:blue; } } 错误如下: Sass Error: Invalid CSS after " &": expected "{", was "-info {" "-info" may only be used at the begin

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

()

汇编此文件:

.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.
我在系统(Ubuntu12.04.4 LTS)上安装了最新的SASS版本(3.3.7),并在一个新文件上运行
scss
,上面的代码可以正常工作

但是,使用Grunt创建一个新项目时,会出现上述错误


有什么想法吗?

因此,在使用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.
以这种方式使用后缀有相当复杂的历史,请参见:


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

正如@cimmanon善意地评论的那样,这可能是由于SASS和Compass之间的版本冲突造成的

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


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

是的,这是我怀疑的,但我找不到出现版本不匹配的具体位置。它可能埋在约曼堆的某个地方。我已经在这方面投入了一天的精力…对,所以这可能是它,但是在不同的背景下。这很值得一提,因为使用Yeoman的人可能并不熟悉引擎盖下的一切。