找不到Ruby-SassCompiler的指南针

时间:2014-08-20 08:21:34

标签: ruby compass-sass

我有一个小的ruby脚本使用Compass来编译* .scss文件,因为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)。

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

在挖掘了一下之后,我终于找到了它!

require 'compass/sass_compiler'

是缺失的一行!

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

Compass.sass_compiler.compile!

多数民众赞成。

顺便说一句:Compass.sass_compiler方法接受一些选项(source),这些选项被移交给编译器,但是如上所述使用Compass.add_configuration执行同一个Job。

我希望有人可以使用这些信息,快乐编译!

修改

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

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和指南针的官方文档。