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

当我在ruby脚本中运行以下命令时,生成的文件包含“sass”语法而不是有效的css
当我试图添加set-opts命令来指定“-f scss-t css”时,为了确保转换器知道该做什么,它会抛出一个错误:
NoMethodError: undefined method `banner=' for ["-F scss -T css"]:Array

目标是将scss文件从ant构建脚本内部编译为css文件。
除了错误的语法问题外,一切正常。
我有什么遗漏吗?

最佳答案

我重写了脚本以使用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

07-28 00:13