2012-05-31 4 views
2

레일 3.0.9. Gemfile에나침반 + 가드 + 작전을 할 수 없습니다.

:

gem 'compass-rails' (1.0.1) 
gem 'sass' (3.0.19) 
... 

group :development, :test do 
    gem 'guard' (1.0.3) 
    gem 'guard-sass' (0.6.0) 
    ... 
end 

이 구성에서 오류는 다음과 같습니다

ERROR: Sass > Syntax error: File to import not found or unreadable: compass. 
       Load paths: 
       /var/www/inbox/public 
       /var/www/inbox/public/images 
       /var/www/inbox/public/images/intro 
       ... 

(일반적으로 I (즉 ...ruby-1.9.3-p194-perf/gems/compass-0.12.1/frameworks/compass/stylesheets하지입니다) 나침반의 경로가 누락 된 것을 볼 수 있습니다, 그래서 어떻게 든 나침반이로드되지 않고로드하기 위해 무엇을해야할지 모르겠다.

내가 거래 할 때 guard-sassguard-compass에 대한 오류는 다음과 같습니다

ERROR: Rails.root is nil! (RuntimeError) 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/util.rb:370:in `rails_root' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/rails.rb:11:in `default_options' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/configuration.rb:33:in `options' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin/compiler.rb:38:in `initialize' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:63:in `new' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:63:in `compiler' 
/home/jkl/.rvm/gems/ruby-1.9.3-p194-perf/gems/sass-3.1.19/lib/sass/plugin.rb:120:in `options' 
... 

내가이 .sass 파일을 업데이트 할 때마다 제대로 작동하려면 guard-livereload이 원하는.

일반적으로 나침반은 올바르게 작동합니다. 페이지 새로 고침시 SASS 파일에서 새 CSS가 생성됩니다.

+0

'bundle exec'접두사를 붙이거나 내 보석 인'rubygems-bundler'를 사용해 보았습니까? – mpapis

+0

모든 rake/guard/접두어 앞에 zsh addon을 실행하고 있습니다. Gemfile이 발견되면 "bundle exec"명령 (https://github.com/pjg/dotfiles/blob/master/.zsh/bundler/bundler.plugin.zsh). 그래서 어떤 번들러 문제가 여기에 :) 나는 이것이 일종의 주문 문제라고 생각한다. 즉, 나침반 레일이로드되기 전에 가드 - 씨스가로드된다. –

답변

2

guard-sass 하드 코드 SASS는 현재 디렉토리의 하위 디렉토리 (최신 버전 0.6.0의 https://github.com/hawx/guard-sass/blob/ac65c06fb0ea237713197730196d30ac47840bbf/lib/guard/sass.rb#L20 참조)로만 경로를 가져 오므로 Compass에서 SASS를 가져올 수 없습니다 (나침반 경로가 SASS의로드 경로에 없음).

해결 방법은 :load_paths 설정보다 우선합니다. 방법은 다음과 같습니다.

guard 'sass', 
    :input => 'app/assets/stylesheets', 
    :output => 'public/stylesheets', 
    :load_paths => Dir.glob(File.join(Gem.dir, "gems", "compass*", "frameworks/blueprint/stylesheets")) + Dir.glob(File.join(Gem.dir, "gems", "compass*", "frameworks/compass/stylesheets")) 

또는 더 이상 필요하지 않은 버전 0.7 이상으로 업그레이드하십시오.

+0

나는 이것을 시도했지만 이제는 내 서버가 여전히 시작하지 않는다. :/ – jackyalcine

+1

Rails.root가 무효입니다. 오류뿐만 아니라 최신 경비와 가드 - 신음 소리 ... –

+0

고마워요, Paweł! 그것은 저를위한 간계를한다. 나침반 0.12.2를 사용하고 있지만 오류가 발생했습니다. – medoingthings

0

최근 레일즈 3.0.9 프로젝트에 guard-sass를 설치했고 같은 문제가 발생했습니다. 파벨이 제공 한 대답은 나를 도와주지 못했습니다. 그런 다음 개발 서버에서 가드를 사용할 필요가 없다는 것을 깨달았습니다. 스타일과 스크립트 작업을 할 때 내 로컬 컴퓨터에 설치되어 있는지 확인해야합니다. 그러면 Sass가 CSS가되고 CSS가 압축됩니다. (방해). 그럼 난 다른 터미널 내 레일 터미널 창에서 응용 프로그램 및 경비를 시작할 수

group :guard do 
    gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i # Installs fsevent if on a Mac 
    gem "sass",   "~> 3.2.1" 
    gem 'guard-sass', "~> 1.0.0" 
    gem 'guard-jammit' 
end 

: 내가 무슨 짓을했는지

처럼 내 Gemfile에서 그룹 내 가드 보석을 분리합니다.

+0

이것이 올바른 해결 방법 일 수 있습니다. 나는 그것을 확인해야 할 것이다. –