[英]Unable to load Sass / Compass after installing RVM, to use with Assetic in Symfony2
我試圖使用Capifony,它需要Capistrano,而后者需要Ruby。 但是我的Ruby apt版本過舊,並引發語法錯誤。 因此,我安裝了RVM並執行以下操作:
$ rvm use 1.9.3
$ rvm --rvmrc --create use 1.9.3@myapp
$ gem install sass [--pre]
$ gem install compass [--pre]
$ updatedb
$ locate sass | grep myapp | grep bin
$ locate compass | grep myapp | grep bin
將這些路徑復制並粘貼到config.yml
sass:
bin: /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/sass-3.2.0.alpha.277/bin/sass
#apply_to: "\.scss$"
compass:
bin: /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/bin/compass
apply_to: "\.scss$"
在切換到RVM之前,有關Compass和Sass的所有操作均正常。 Compass / Sass似乎仍然可以從app_dev.php運行,但是當我嘗試轉儲資產進行生產時,它們會中斷:
$ rm -r app/cache/ # this is how I delete cache, any other way give me errors, even before having this compass problem. This have always worked fine. I removed the * because this code block was interpreting it as a comment
$ php app/console assetic:dump --env=prod --no-debug
Dumping all prod assets.
Debug mode is off.
00:05:36 [file+] /home/www/dev/public/myapp/app/../web/css/fcd6640.css
[Assetic\Exception\FilterException]
An error occurred while running:
'/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby' '/usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/bin/compass' 'compile' '/t
mp' '--config' '/tmp/assetic_compassF1Mv7t' '--sass-dir' '' '--css-dir' '' '/tmp/assetic_compassKDoaEA.scss'
Error Output:
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- sass (LoadError
)
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/lib/compass/dependencies.rb:6:in `rescue in <top (required)>'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/lib/compass/dependencies.rb:1:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/lib/compass.rb:5:in `block in <top (required)>'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/lib/compass.rb:4:in `each'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/lib/compass.rb:4:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/bin/compass:20:in `block in <main>'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/bin/compass:8:in `fallback_load_path'
from /usr/local/rvm/gems/ruby-1.9.3-p194@myapp/gems/compass-0.13.alpha.0/bin/compass:19:in `<main>'
Output:
Unable to load Sass. Please install it with one of the following commands:
gem install sass --pre
Input:
$main-color: red;
body {
color: $main-color;
}
我得到的另一個錯誤:
Error Output:
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find compass (>= 0) amongst [big decimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
相關:@mpapis @jamz 使用Assetic PHP與RVM安裝后,Sass斷開了
我想添加更多標簽:指南針和sass。 不知道是否可以用更高的分數來完成。
更新
我添加了一個這樣的包裝器:
$ rvm wrapper ruby-1.9.3-p194@myapp php sass compass
並再次編輯config.yml,但是現在我交替出現這些錯誤:
錯誤1:
[Assetic\Exception\FilterException]
An error occurred while running: '/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby' '/usr/local/rvm/bin/php_compass' 'compile' '/tmp' '--config' '/tmp/assetic_compass0Tmn8t' '--sass- dir' '' '--css-dir' '' '/tmp/assetic_compasssw2S3k.scss'
Error Output: /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby: no Ruby script found in input (LoadError)
Input:
$main-color: red;
body {
color: $main-color;
}
錯誤2:
Error Output: /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/shared_helpers.rb:22:in `default_gemfile': Could not locate Gemfile (Bundler::GemfileNotFound)
from /usr/local/rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler.rb:213:in `default_gemfile'
指南針仍然可以通過app_dev.php正常工作
我想你需要一個包裝紙:
rvm wrapper ruby-1.9.3-p194@myapp php sass compass
這將生成包裝,該包裝將調用適當的ruby(rvm)環境,如下所示使用它們:
sass:
bin: /usr/local/rvm/bin/php_sass
#apply_to: "\.scss$"
compass:
bin: /usr/local/rvm/bin/php_compass
apply_to: "\.scss$"
解
只需使用lessphp即可 。 它可以與Composer一起安裝,然后在config.yml中安裝:
lessphp:
php: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
apply_to: "\.less"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.