有谁知道如何使用 JRuby 和 Compass 模块在 build.xml 中编译 SASS (*.scss) 文件?
我可以在 sass 独立安装中使用 Sass::Exec 模块,通过以下方式从 *.scss 编译为 *.css:
<!-- Compile SCSS files copied to target folder -->
<property name="stylesheetFolder" location="myproject/stylesheet"/>
<property name="inputFiles" value="${stylesheetFolder}/[^_]*.scss" />
<echo message="Compiling SCSS files from ${stylesheetFolder}..." />
<script language="ruby" classpath="${env.EP_LIB}/jruby/complete/${jruby-complete.build.jar}">
<![CDATA[
require $project.getProperty('env.EP_LIB') + '/sass/sass-3.2.9/lib/sass'
require 'sass/exec'
files = Dir.glob($project.getProperty('inputFiles'))
files.each do |file|
opts = Sass::Exec::Sass.new(["--style", "compressed", "--load-path", File.dirname(file), file, File.join(File.dirname(file), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
<echo message="Done compiling SCSS source files." />
但是,这并没有赋予我 Compass 框架的强大功能。我下载了独立的 compass gem,我想使用 Compass Ruby 模块之一来替换 Ant build.xml 中的上述代码,如下所示:
<script language="ruby" classpath="${env.EP_LIB}/jruby/complete/${jruby-complete.build.jar}">
<![CDATA[
require $project.getProperty('env.EP_LIB') + '/compass/compass-0.12.2/lib/compass'
require 'compass/exec'
files = Dir.glob($project.getProperty('inputFiles'))
files.each do |file|
opts = Compass::Exec::Compass.new(["--style", "compressed", "--load-path", File.dirname(file), file, File.join(File.dirname(file), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
有人成功做到这一点吗?