SASS:Invalid@import:expected-end-of-line,was-quot"E;”有时

SASS:Invalid@import:expected-end-of-line,was-quot"E;”有时,sass,Sass,我有一个sass文件,它只包含导入语句 @import "this"; @import "that"; 如果我从命令行运行sass,一切都很好 bundle exec sass foo.scss:foo.css 但是,如果我在脚本中运行它(也通过bundle exec),它会对这些分号感到不安。这个 template = File.read("foundation.scss") sass_engine = Sass::Engine.new(template) sass_output = sa

我有一个sass文件,它只包含导入语句

@import "this";
@import "that";
如果我从命令行运行sass,一切都很好

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)
如果我去掉分号,情况就相反了。它在命令行而不是脚本中发出抱怨


发生了什么事,从脚本运行时如何让它接受分号?

不同之处在于,Sass命令行程序注意到“scss”扩展名,并将文件解析为scss,而不是传统的Sass。当以编程方式执行此操作时,您启动的是Sass引擎,而不是告诉它它是SCSS

因此,错误在于它将其读取为Sass而不是SCSS

这会马上解决你的问题

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