Masz rację, nie ma tak naprawdę każde obszerną dokumentację na temat korzystania z kompasu z Ruby. To niefortunne, ale nie pozwólmy, aby drobne szczegóły, takie jak dokumentacja, zatrzymały nas!
pierwszej próbie
Kiedy szukałem zrobić to samo, tylko szturchnął wokół Kompas source i był w stanie połączyć ten mały skrypt Ruby. Na pierwszy rzut oka wydaje się, rade:
require 'compass'
require 'sass/plugin'
compiler = Compass::Compiler.new(
# Compass working directory
'.',
# Input directory
'styles/scss',
# Output directory
'styles/css',
# Compass options
{ :style => :compressed }
)
compiler.compile('test.scss', 'test.css')
Ale widocznie Kompas ma kilka opcji konfiguracyjnych domyślnych, które nie są automatycznie włączone przy wywołaniu konstruktora kompilatora bezpośrednio (z których jeden jest SASS load_path
). Może to prowadzić do błędów podczas próby importowania funkcji kompasu i wstawek, takich jak:
error: File to import not found or unreadable: compass/css3
Compass < 1.0.0 (aka "po staremu")
Oto jak zadzwonić kompilator bez nadrzędnymi te domyślne:
require 'compass'
Compass.add_configuration(
{
:project_path => '.',
:sass_path => 'styles/scss',
:css_path => 'styles/css'
},
'custom' # A name for the configuration, can be anything you want
)
Compass.compiler.compile('test.scss', 'test.css')
jednak od wersji 1.0.0 Compass, Compass.compiler
została zastąpiona Compass.sass_compiler
, co prowadzi do ...
Kompas> = 1.0.0 (a.k.a. „Nowa droga”)
Z podziękowaniami dla @philipp na znalezienie how to use the new API możemy ponownie aktualizować ten fragment do pracy z Compass.sass_compiler
:
require 'compass'
require 'compass/sass_compiler'
Compass.add_configuration(
{
:project_path => '.',
:sass_path => 'styles/scss',
:css_path => 'styles/css'
},
'custom' # A name for the configuration, can be anything you want
)
compiler = Compass.sass_compiler({
:only_sass_files => [
'styles/scss/test.scss'
]
})
compiler.compile!
Awesome! To jest doskonałe! Występuje niewielka usterka, gdy używam go z 'bundle exec'. Wciąż dostaję błędy, że kompas nie może załadować żadnych mixinów. Zakładam, że jest to zmienna środowiskowa, którą należy ustawić. Czy zdarzy ci się wiedzieć, co należy ustawić? –
Powinienem był dodać błąd, który dostałem ... 'error: Plik do importu nie znaleziony lub nieczytelny: compass/css3.' –
Zacząłem inne pytanie. Myślałem, że to inny problem. Jednak teraz myślę, że jest to bezpośrednio związane. http://stackoverflow.com/questions/13160660/compass-mixins-not-found-when-using-directly-from-ruby. –