Sass :: Engine.new导致@import

时间:2016-04-14 07:49:14

标签: ruby sass

我正在ruby中编写自己的静态站点生成器,我正在将Sass编译器添加到我的代码中。

def compile_sass
  # system 'sass _sass/styles.scss styles.css'
  options = {
    syntax: :scss,
    style: :compressed
  }
  render = Sass::Engine.new(File.read('_sass/styles.scss'), options).render
  File.write('style.css', render)
end

但是,如果styles.scss文件中包含@import,则会出现问题。使

(sass):1: File to import not found or unreadable: variables. (Sass::SyntaxError)

两个SCSS文件都位于 _sass 文件夹中,主脚本位于root中,而compile_sass位于_generator中。但是,当我取消注释系统调用并对其余内容进行注释时,一切都按预期工作。

styles.scss

@import 'variables';

html {
  background-color: red;
}

_variables.scss

body {
  background-color: blue;
}

我几乎尝试了所有内容,检查how to import stufflooked at the documentation,但我找不到任何可以帮助我找到并定义问题的内容。

1 个答案:

答案 0 :(得分:1)

原来我必须将所有_sass/*.scss个文件加载到 Sass :: Engine 中,如下所示:

Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths|
  load_paths << '_sass'
end