以编程方式调用Sass :: Exec :: Sass Convert会生成错误的语法

时间:2012-08-06 14:10:54

标签: ruby sass

Sass::Exec::SassConvert.new(["{path_to_scss_file}.scss", "{path_to_css_file_to_generate}.css"]).process_result

当我从ruby脚本中运行以下命令时,生成的文件包含“sass”-syntax而不是有效的css 当我尝试添加set_opts命令来指定“-F scss -T css”时,为了确保转换器知道该怎么做,它会抛出一个错误:

NoMethodError: undefined method `banner=' for ["-F scss -T css"]:Array

目标是将scss文件从ant构建脚本中编译为css文件。 除了错误的语法问题外,一切正常。

这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

我重写了脚本以使用Sass::Engine代替SassConvert

在查看SassConvert类的代码之后,以下片段向我指出了解决方案:

unless [:scss, :sass].include?(@options[:to])
    raise "Unknown format for sass-convert --to: #{name}"
end

SassConvert类似乎只将CSS文件转换为.scss或.sass,而不是相反。

此外,在调用Sass::Exec::SassConvert时添加选项标志的正确方法是执行以下操作:

sassConvert = Sass::Exec::SassConvert.new(["-F scss", "-T sass", "{path_to_from_file}", "{path_to_file_to_generate}"]
sassConvert.parse!
sassConvert.process_result