我正在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 stuff,looked at the documentation,但我找不到任何可以帮助我找到并定义问题的内容。
答案 0 :(得分:1)
原来我必须将所有_sass/*.scss
个文件加载到 Sass :: Engine 中,如下所示:
Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths|
load_paths << '_sass'
end