0

我正在使用 JRuby 使用 compass 来编译 sass css

我知道如何使用指南针编译 scss 文件:

compiler = Compass::Compiler.new(
             # Compass working directory
             '.',
             # Input directory
             'styles/scss',
             # Output directory
             'styles/css',
             # Compass options
             { :style => :scss}
           )        
compiler.compile('test.scss','test.css')

但是我想编译一些我在字符串中而不是在文件中的指南针源我一直在研究 Compass::Compiler 源但我没有看到任何方法来编译 scss 字符串而不是文件

注意: 直接使用 SASS 编译器而不是指南针我可以编译一个 scss 字符串

engine = Sass::Engine.new(source,:syntax => :scss)
result = engine.render
4

1 回答 1

0

在 Compass::Compiler ruby​​ 类型中深入挖掘之后,我发现它毕竟以一种简单的方式委托给 Sass::Engine:

编译函数类似于:

def compile(sass_filename, css_filename)
    ...
    engine(sass_filename, css_filename).render
    ...
end

这是调用引擎函数:

def engine(sass_filename, css_filename)
    ...
    Sass::Engine.new(open(sass_filename).read, opts)
    ...
end

因此,使用 compass 编译字符串的方法与使用原始 Sass 编译的方法相同:

Sass::Engine.new(scssString,{:syntax => :scss,
                             :compass => {:css_dir => 'stylesheets',:js_dir => 'javascripts',:images_dir => 'images'}})
result = engine.render
于 2013-09-23T08:50:40.463 回答