2011-12-17 13 views
13

Mam plik Sass, która zawiera tylko instrukcje importuSASS: Nieprawidłowy @import: oczekiwany koniec linii, był ";" - czasami

@import "this"; 
@import "that"; 

jeśli biegnę Sass z wiersza polecenia wszystko jest dobre

bundle exec sass foo.scss:foo.css 

Jeśli jednak go uruchomić z poziomu skryptu (również poprzez pakiet exec), denerwuje się na tych średnikach. Ten ...

template = File.read("foundation.scss") 
sass_engine = Sass::Engine.new(template) 
sass_output = sass_engine.render 

... produkuje następujące na wezwanie sass_engine.render:

(sass):1: Invalid @import: expected end of line, was ";". (Sass::SyntaxError) 

jeśli mogę pozbyć się średnikiem wtedy sytuacja jest odwrotna. Składa skargę w wierszu poleceń, a nie w skrypcie.

Co się dzieje i jak uzyskać akceptację średników po uruchomieniu skryptu?

Odpowiedz

14

Różnica polega na tym, że program wiersza poleceń Sass rozpoznaje rozszerzenie "scss" i analizuje plik jako SCSS zamiast tradycyjnego Sass. Robiąc to programowo, uruchamiasz silnik Sass i nie mówisz mu, że jest to SCSS.

Błąd polega na tym, że odczytano go jako Sass zamiast SCSS.

http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options

To powinno rozwiązać problem aż!

template = File.read("foundation.scss") 
sass_engine = Sass::Engine.new(template, :syntax => :scss) 
sass_output = sass_engine.render 

Altówka!

+0

Co za dziwny błąd! To było pomocne. –

Powiązane problemy