在Ruby中调用Sass的编译文件

问题描述:

我想在我的Ruby文件中从Sass调用compile_file。当我做在Ruby中调用Sass的编译文件

compile_file("file.scss", options) 

我收到的错误:undefined method 'compile_file.'我缺少一个require或调用它错了吗? Sass已安装,当我在终端中启动时,我可以正确监视它。当我不在看时,我希望能够自己拨打compile_file。有人可以给我示例代码,了解如何在Ruby中通过传递文件名和对象来使用Sass的compile_file

我不知道无礼,但一般而言,您需要可以使用的方法Sass::compile_file的全名或要求模块到全局空间:require 'sass'

+0

当我做萨斯:: compile_file我得到**未初始化的不断萨斯**当我做需要“顶嘴”我得到**没有这样的文件加载 - 青菜** – jaysonp

试着这么做

require 'rubygems' 
require 'sass' 
puts 'methods available: ' + (Sass.methods.sort - Object.methods).inspect 
Sass.compile_file 
+0

我不能为Sass做正确的事情,因为当我运行你的代码时,我没有看到compile_file作为一种方法。 – jaysonp

+0

有什么方法可用?运行'gem list'来找出你正在使用的Sass版本,并确保它不是很古老。您还可以查看gem本身的源代码,它应该位于您的机器上的gems目录中。 –

安装使用require 'sass'前萨斯:

sudo gem install sass

现在创建一个文件test.rb

#!/usr/bin/ruby 
require 'sass' 
puts Sass::compile_file('./colors.scss') 

(做chmod +x test.rb)现在

colors.scss

$color: blue !default; 
p { 
color: $color; 
} 

运行./test.rb将输出:

p { 
    color: blue; } 

根据the docs你应该使用Sass::Engine

Using Sass in Ruby code is very simple. After installing the Sass gem, you can use it by running require "sass" and using Sass::Engine.

#!/usr/bin/ruby 
require 'sass' 
sass_engine = Sass::Engine.for_file('./colors.scss', :syntax => :scss) 
output = sass_engine.render 
puts output