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文件。 除了错误的语法问题外,一切正常。
这里有什么我想念的吗?
答案 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