2011-12-17 76 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

相关问题