71

我的 compass watch 命令有问题 - 直到几天前它都运行良好。我没有对我的配置文件进行任何更改。

我重新安装了 Compass,使用 rvm 来更新 Ruby。我检查了我的 custom_require.rb 文件,但我真的不知道要查找什么。它似乎试图在某处加载文件“sass/script/node”并从http://sass-lang.com/docs/yardoc/Sass/Script/Node.html我收集文件路径 - 但我在那里什么都没有。

/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>'

有人有想法么?

4

11 回答 11

113

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

gem uninstall sass
gem install sass

我安装 sass 时出现问题,这样做解决了这个问题。

于 2014-01-07T16:17:31.313 回答
24

就我而言,Sass 版本与 Compass 不兼容。

使固定 :

  1. 卸载 Sass 和 Compass

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

    gem install compass
    
于 2014-05-22T13:57:29.887 回答
13

这种组合最终使我将 Compass 和 SASS Sourcemaps 结合在一起:

宝石文件

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

指南针配置.rb

sass_options = {:sourcemap => true}
于 2013-07-24T09:34:00.513 回答
10

此特定版本适用于以下两者:

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

它们可能彼此不兼容,这就是您收到这些错误的原因(考虑到您使用的是最前沿的版本)。

于 2013-06-30T20:11:28.327 回答
4

如果您使用的是 Ubuntu,则可能是 apt-get 和 rvm 冲突的问题。

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

sudo apt-get install ruby-compass 

compass watch之后为我工作。

于 2014-01-08T08:25:38.287 回答
3

上述答案的变体:对我来说(使用 Bootstrap for Sass),结果是

gem install bootstrap-sass

这是解决此问题所必需的。对我来说,Compass 的 LoadError 问题是在我更新了我使用的 Ruby 版本之后开始的。

于 2014-02-18T11:02:41.490 回答
3

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

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

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

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

于 2014-07-01T14:35:29.383 回答
2

我能够通过这样做来修复它

gem uninstall sass
gem install sass -v 3.2.12

这肯定是由于版本依赖性问题,您最好修复您的 grunt 任务,使其与较新版本的 saas、compass 等向前兼容。

于 2014-10-06T15:38:33.950 回答
1

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

compass watch或者compass compile

编译器不知道它应该使用哪个指南针版本来编译。因此,您可以做的是明确指出要使用的指南针版本:

compass _1.0.3_ watch

还有另一个有趣的线索

于 2016-08-02T13:41:17.837 回答
0

以下组合对我有用:

gem install compass --pre
gem install sass -v 3.3.3
于 2014-04-06T15:05:02.650 回答
0

我必须设置一个具有正确版本的 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"
于 2014-09-02T06:31:00.870 回答