【问题标题】:Sass issue when i use the --watch parameter使用 --watch 参数时的 Sass 问题
【发布时间】:2013-05-23 15:20:52
【问题描述】:

当我执行该行时

$sass --watch sass/views.scss:views.css

我收到以下消息

Sass 正在关注变化。按 Ctrl-C 停止。 NameError: 未初始化的常量Listen::MultiListener 使用 --trace 进行回溯。

正如您所说,该过程立即停止并且监视选项不起作用。

这里有什么问题??我已经安装了 Ruby 2.0.0-p0 版本。

任何帮助表示赞赏。

编辑:(--trace)

Sass 正在关注变化。按 Ctrl-C 停止。 /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/plugin/compiler.rb:266:in watch': uninitialized constant Listen::MultiListener (NameError)
from /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/plugin.rb:107:in
method_missing'
来自 /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/exec.rb:452:in watch_or_update'
from /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/exec.rb:315:in
process_result'
来自 /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/exec.rb:41:in parse'
from /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/lib/sass/exec.rb:21:in
parse!'
来自 /home/javier/.rvm/gems/ruby-2.0.0-p0/gems/sass-3.2.8/bin/sass:9:in <top (required)>'
from /home/javier/.rvm/gems/ruby-2.0.0-p0/bin/sass:23:in
load'
来自 /home/javier/.rvm/gems/ruby-2.0.0-p0/bin/sass:23:in `'

【问题讨论】:

  • 我使用的是 Ruby 1.x - 已经试过了吗?
  • 我认为 Sass 不应该与 Ruby 2.0 一起运行
  • @cimmanon 我也这么认为。但是 Rails 4 已经准备好(强烈推荐)与 Ruby 2.0 一起使用,并且它使用 Sass 是正确的。那么,有什么诀窍。
  • @jcadiz 你能运行$sass --watch sass/views.scss:views.css --trace 来查看完整的跟踪吗?
  • @fmquaglia 我编辑问题。

标签: sass


【解决方案1】:

我解决了将 sass gem 更新到最新版本 (3.2.9) 的问题。我认为在使用 --watch 参数时,此更新提供了与 Ruby 2.0.0 更好的兼容性。 现在一切正常。

【讨论】:

  • 我很高兴听到@jcadiz,在将它们添加到您的Gemfile 之前,请务必查看the rubygems website
【解决方案2】:

我有同样的问题。您只需要在 sudo 模式下运行命令即可。

sudo sass --watch sass/views.scss:views.css

【讨论】:

  • 如果你安装了 ruby​​-sass,你可以卸载 ruby​​-sass 并使用 gem 安装 sass
  • 我很高兴这有效,但是在 sudo 模式下运行真正不需要 root 权限的东西并不是一个好习惯......最好解决实际问题:)跨度>
【解决方案3】:

我通过卸载使用 apt-get (ruby-sass) 安装的原始 sass 并使用 gem 重新安装来修复它

【讨论】:

  • 这如何在现有答案之上添加任何内容?接受的答案已经承认这是一个版本控制问题。
  • @cimmanon 刚刚赞成 jason-pascoe 的回答,因为它帮助我解决了我的问题。谢谢!
  • 是的,这是一个版本控制问题,但我写了我如何修复它。
  • @cimmanon:它为我们所有人使用基于 Debian 的发行版的答案增加了价值。我也通过 apt-get 安装了 ruby​​,但事实证明必须通过 gem 安装它才能解决版本控制问题。谢谢,杰森。
【解决方案4】:

我尝试了这些答案,但都没有奏效,所以我做了更多研究。 Apparently,问题出在 SASS 使用的 listen gem 上。 Sass 仅与 listen 0.7 兼容。

我能够通过运行以下两个命令(以 root 身份)使其工作:

gem uninstall listen
gem install listen -v 0.7.3

【讨论】:

  • SASS 可能只在该版本的多文件监视模式下工作。如果只看一个文件,它仍然适用于更高版本。
猜你喜欢
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2021-07-06
相关资源
最近更新 更多