【问题标题】:Compass from Ruby—SassCompiler not foundRuby 中的 Compass — 未找到 SassCompiler
【发布时间】:2015-01-12 19:18:56
【问题描述】:

我有一个使用 Compass 编译 *.scss 文件的小 ruby​​ 脚本,因为 Compass 和 Sass 是基于 ruby​​ 的,所以我只是像这样直接使用编译器(基于 this SO question):

require 'compass'
require 'sass'

Compass.add_configuration({
  :project_path => '.',
  :sass_path => 'css',
  :css_path => 'css',
  :output_style => :compressed
},'custom')

Compass.compiler.compile('css/index.scss', 'css/index.css')

按预期工作并进行编译,但是,我也收到此消息:

Compass.compiler is deprecated. Use Compass.sass_compiler instead.

所以我尝试使用:

Compass.sass_compiler.compile('css/index.scss', 'test.css')

什么抛出一个错误,告诉类SassCompiler(NoMethodError)没有定义。

我真的很想使用建议的方法,但我可以使用它吗?我需要提前做什么?

感谢您的帮助!

【问题讨论】:

    标签: ruby compass-sass


    【解决方案1】:

    挖了一点源头,终于找到了!

    require 'compass/sass_compiler'
    

    是缺少的行!

    运行编译的最后一行如下所示:

    Compass.sass_compiler.compile!
    

    就是这样。

    顺便说一句:Compass.sass_compiler 方法接受一些选项 (source),这些选项会交给编译器,但使用上面的 Compass.add_configuration 可以完成相同的工作。

    希望有人可以使用这个信息,编译愉快!

    编辑

    由于这里的 cmets,完整的代码适用于我的项目。它包含在构建脚本中,以下几行来自初始化:

    require 'compass'
    require 'compass/sass_compiler'
    
    Compass.add_configuration({
      :project_path     => _(),
      :output_style     => :expanded,
      :cache_path       => '<path to cache>',
      :http_fonts_path  => '../fonts',
      :fonts_dir        => '<relative path to fonts>',
      :sass_path        => '<path to the scss files>',
      :css_path         => '<path fot the compiled css>',
      :http_images_path => '../img',
      :images_path       => '<path to images>'
    },'custom-name')
    

    这些行在每次编译中运行:

    compiler = Compass.sass_compiler({
      :only_sass_files => [
        '<path to scss file to compile>'
      ]})
    compiler.compile!
    

    要了解所有可能的选项,我建议查看源代码以及 sass 和 compass 的官方文档。

    【讨论】:

    • 仍然不适合我,我得到这个:NoMethodError on line ["45"] of C: undefined method `compile' for #<:sasscompiler:0x32d28b0> 请发布您的配置.rb?
    • 它看起来不像编译!想要参数 Compass.sass_compiler.compile!('style.scss', 'style.debug.css') 给出错误。
    猜你喜欢
    • 1970-01-01
    • 2015-01-13
    • 2014-03-01
    • 1970-01-01
    • 2018-05-21
    • 2013-09-30
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多