2011-12-17 29 views
13

我有一個上海社會科學院文件,該文件只包含import語句SASS:無效@import:預計行結束,是「;」 - 有時

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

,如果我從運行青菜命令行一切都很好

bundle exec sass foo.scss:foo.css 

但是如果我在腳本中運行(也是通過bundle exec),它對這些分號感到不安。這...

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

...產生的sass_engine.render調用以下:

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

,如果我擺脫了分號,則情況正好相反。它抱怨命令行而不是腳本。

發生什麼事了,如何在從腳本運行時接受分號?

回答

14

區別在於Sass命令行程序注意到「scss」擴展名,並將文件解析爲SCSS而不是傳統的Sass。以編程方式進行編程時,您將啓動一個Sass引擎,而不是告訴它它是SCSS。

所以,錯誤在於它將它讀爲Sass而不是SCSS。

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

這應該可以解決你的問題所在了!

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

Viola!

+0

多麼奇怪的錯誤!這很有幫助。 – 2017-08-08 00:08:24