为什么“罗盘监视”说它不能加载sass /脚本/节点(LoadError)?

我的罗盘监视命令有问题 – 直到几天前它工作得很好。 我没有改变我的configuration文件。

我重新安装了Compass,使用rvm来更新Ruby。 我检查了我的custom_require.rb文件,但我真的不知道要找什么。 它似乎试图加载文件“sass /脚本/节点”的地方,从http://sass-lang.com/docs/yardoc/Sass/Script/Node.html我收集文件path – 但我什么也没有。

 /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require': cannot load such file -- sass/script/node (LoadError) from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `<top (required)>' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `block in <top (required)>' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `each' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `<top (required)>' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `<top (required)>' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass.rb:5:in `block in <top (required)>' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass.rb:4:in `each' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/lib/compass.rb:4:in `<top (required)>' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/bin/compass:20:in `block in <top (required)>' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/bin/compass:8:in `fallback_load_path' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/bin/compass:19:in `<top (required)>' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/bin/compass:19:in `load' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/bin/compass:19:in `<main>' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval' from /Users/sampurcell/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>' 

有人有主意吗?

卸载sass并用以下命令重新安装:

 gem uninstall sass gem install sass 

我的sass安装出现了问题,并解决了这个问题。

在我的情况下,Sass版本与Compass不兼容。

修正:

  1. 卸载Sass AND Compass

     gem uninstall compass gem uninstall sass 
  2. 安装Compass 将自动安装一个兼容的Sass引擎

     gem install compass 

这个组合终于为我带来Compass和SASS Sourcemaps:

的Gemfile

 gem 'sass', '3.3.0.alpha.149' gem 'compass', '0.12.2' gem 'compass-sourcemaps', "~> 0.12.2.sourcemaps.57a186c" 

指南针config.rb

 sass_options = {:sourcemap => true} 

这个特定的版本适用于以下两个方面

 gem 'sass', '3.3.0.alpha.149' gem 'compass', '0.12.2' 

他们可能不兼容,这就是为什么你会得到这些错误(考虑到你使用的是最新版本)。

如果你使用的是Ubuntu,它可能是apt-get和rvm碰撞的问题。

尝试使用rvm implode删除rvm,然后运行

 sudo apt-get install ruby-compass 

compass watch为我工作。

上述答案的一个变种:对我来说(使用Bootstrap for Sass),原来是这样

 gem install bootstrap-sass 

这是解决这个问题所需要的。 对于我来说,更新我使用的Ruby版本后,Compass发生LoadError问题。

我相信这是由于与sass的版本冲突。

https://rubygems.org/gems/compass gem目前位于v0.12.16 – 将其添加到Gemfile

 gem 'sass', '3.2.19' gem 'compass', '0.12.6' 

您可能需要先卸载这两个gem的所有版本。

我能够通过这样做来解决这个问题

 gem uninstall sass gem install sass -v 3.2.12 

这绝对是由于版本依赖性问题,你最好是修复你的咕噜任务,使其向前兼容新版本的saas,指南针等等。

以下组合为我工作:

 gem install compass --pre gem install sass -v 3.3.3 

我必须设置正确版本的gemfile(这个错误是由SASS和Compass版本不匹配造成的)。 我用了下面的bundle install来解决这个问题:

 source "https://rubygems.org" gem 'bootstrap-sass', "~> 3.2.0" gem 'sass', [ "< 3.5" , ">= 3.3.13" ] gem 'compass', "~> 1.0.1" gem 'compass-core', "~> 1.0.1" gem 'compass-import-once', "~> 1.0.5" gem 'chunky_png', "~> 1.2" gem 'rb-fsevent', ">= 0.9.3" gem 'rb-inotify', ">= 0.9" 

我有同样的问题,然后我意识到,我有两个指南针的版本,所以通过这样做:

compass watchcompass compile

编译器不知道应该使用哪个指南针版本进行编译。 所以,你可以做的是明确指出罗盘版本的工作:

compass _1.0.3_ watch

还有一个有趣的线程 。