【问题标题】:Sass compiler issues with ampersand and with updateSass 编译器与 & 符号和更新有关的问题
【发布时间】:2015-05-18 20:09:27
【问题描述】:

我正在尝试设置链接样式并遵循 BEM 原则,但我从 sass 编译器收到错误消息。这是html

<a href="#" class="sg-link sg-link-icon">Link with icon</a>

这里是粗鲁的东西:

.sg-link {
    color: #111;
    text-decoration: none;

    &-icon {

        &:before {
            margin-right: 10px;
        }
    }

    &:hover{
        color: $maggie;
    }
}

现在,当 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 (Media Mark)。所以我检查了 sass 网站,最新版本应该是Sass 3.4.13 (Selective Steve),但是当我尝试用gem update sass 更新时,它没有说要更新。也尝试过 sudo 但没有运气。想法?

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

提前致谢

【问题讨论】:

  • 您对 Sass 版本的看法是正确的。 3.2.x 不处理你的 sn-p 而使用 3.4.x 编译它就好了。你用什么来编译你的 Sass?你是从命令行使用 Sass 还是使用一些构建工具(例如 Grunt、Gulp 等)来自动编译它?
  • 我正在使用终端运行手表,例如sass --watch path/scss:path/css
  • 我明白了。您能粘贴which sass 终端命令的输出吗?
  • 错误输出在问题中,是这个意思吗?如果您在我尝试在此处更新时需要输出,则为 ISVGRELT0001904:~ mliberato$ sudo gem update sass Password: Updating installed gems Nothing to update
  • 我实际上是指在终端运行以下命令的输出:which sass

标签: css ruby terminal sass


【解决方案1】:

您对 Sass 版本的看法是正确的。使用Sassmeister,您可以看到您的 sn-p 在 Sass v3.4.x 下编译,但不是在 3.2.x 下(您可以在控制面板中的 cog 图标菜单下配置 Sass 版本)。

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

(免责声明:我对 Ruby 不是超级有经验,但我发现上述设置对我很有效。)

【讨论】:

  • 我已经通过手动下载和安装 sass gem 来解决问题
猜你喜欢
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多