我使用以下代码将我的SCSS文件从Ruby脚本编译成CSS字符串:
render = Sass::Engine.new(File.read(scss), options).render
其中scss
和options
是SCSS文件和选项。
我想在每次编译SCSS文件时导入一个固定文件(让我们说其路径为/path/to/foo
)。这可以通过编写
@import "/path/to/foo";
在每个文件的开头。但是我想省略它并让它自动导入。我相信应该可以通过覆盖sass gem的某些部分来实现,这样每当我Sass::Engine.new
或render
时,它应该始终如同@import "/path/to/foo";
一样开始。
一种天真的方式可能就是:
render = Sass::Engine.new("@import \"/path/to/foo\";\n" + File.read(scss), options)
.render
但这会弄乱错误消息中的行号,而且看起来也像是一个肮脏的黑客。
如何最小化覆盖sass gem的部分内容,以便编译始终从导入"/path/to/foo"
文件开始,即使未在SCSS文件中写入@import "/path/to/foo";
?