Css Sass编译器与符号和更新有关的问题

Css Sass编译器与符号和更新有关的问题,css,ruby,terminal,sass,Css,Ruby,Terminal,Sass,我试图设计一个链接并遵循BEM原则,但我从sass编译器中得到一个错误。这是html <a href="#" class="sg-link sg-link-icon">Link with icon</a> 现在,当sass watch编译时,我在终端中得到以下错误: error source/scss/atoms/_02-links.scss (Line 7: Invalid CSS after " &": expected "{", was "-icon

我试图设计一个链接并遵循BEM原则,但我从sass编译器中得到一个错误。这是html

<a href="#" class="sg-link sg-link-icon">Link with icon</a>
现在,当sass watch编译时,我在终端中得到以下错误:

error source/scss/atoms/_02-links.scss (Line 7: Invalid CSS after "    &": expected "{", was "-icon {"

"-icon" may only be used at the beginning of a compound selector.)
我以前使用过这种技术,而且一直都很有效,所以我想也许sass版本与此有关。我使用的是
Sass 3.2.13(媒体标记)
。所以我在sass网站上查看了一下,最新版本应该是
sass 3.4.13(选择性史蒂夫)
,但当我尝试使用
gem update sass
进行更新时,它没有说明要更新什么。也尝试过sudo,但没有运气。想法

编辑:我刚刚在Sassmeister上检查了相同的代码,它工作正常


提前感谢

您对Sass版本的看法是正确的。使用,您可以看到代码段在Sass v3.4.x上编译,而不是在3.2.x上编译(您可以在控制面板的cog图标菜单下配置Sass版本)

至于您在环境中更新Sass时遇到问题的原因,可能超出了这个问题的范围,但可能是您的系统的Ruby/gem版本已经过时了。您可能会考虑一个Ruby版本管理工具,或者类似于对安装了哪些版本的GEM进行更精细的控制。我怀疑安装
rbenv
(例如),使用它安装最新版本的Ruby,然后从那里安装带有
gem
的Sass将解决您的问题


(免责声明:我对Ruby不是很有经验,但我发现上面描述的设置对我来说很好。)

关于Sass版本,你是对的。使用3.4.x编译代码段时,3.2.x不会处理代码段。您使用什么来编译Sass?您是否使用命令行中的Sass或某种构建工具(例如Grunt、Gulp等)来自动编译它?我正在用终端运行手表,例如
Sass--watch path/scss:path/css
。请粘贴
哪个sass
终端命令的输出好吗?错误输出在问题中,这就是你的意思吗?如果我在这里尝试更新时需要输出,它是
ISVGRELT0001904:~mlibrato$sudo gem update sass Password:update installed gems Nothing to update
我实际上是指在终端上运行以下命令的输出:
which sass
。我通过手动下载和安装sass gem对问题进行了排序
error source/scss/atoms/_02-links.scss (Line 7: Invalid CSS after "    &": expected "{", was "-icon {"

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