【问题标题】:Call Sass's compile_file in Ruby在 Ruby 中调用 Sass 的 compile_file
【发布时间】:2015-04-29 22:10:24
【问题描述】:

我想在我的 Ruby 文件中从 Sass 调用 compile_file。当我这样做时

compile_file("file.scss", options)

我收到错误消息:undefined method 'compile_file.' 我错过了require 还是说错了? Sass 已安装,当我在终端中启动它时,我可以让它正常观看。我希望能够在我不看的时候自己打电话给compile_file。有人可以给我示例代码,说明如何通过传入文件名和选项对象在 Ruby 中使用 Sass 的 compile_file

【问题讨论】:

    标签: ruby module sass


    【解决方案1】:

    我不知道 Sass,但通常您需要使用方法的完全限定名称 Sass::compile_file 或要求模块进入全局空间:require 'sass'

    【讨论】:

    • 当我执行 Sass::compile_file 时,我得到 未初始化的常量 Sass,当我确实需要 'sass' 时,我得到 没有要加载的此类文件 -- sass b>
    【解决方案2】:

    试试类似的东西

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

    【讨论】:

    • 我一定没有为 Sass 做正确的事情,因为当我运行您的代码时,我没有将 compile_file 视为一种方法。
    • 有哪些方法可用?运行gem list 以找出您使用的 Sass 版本,并确保它不是很旧。您还可以查看 gem 本身的源代码,它应该在您机器上的 gems 目录中。
    【解决方案3】:

    在使用require 'sass'之前安装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

    在 Ruby 代码中使用 Sass 非常简单。安装 Sass gem 后, 您可以通过运行 require "sass" 并使用 Sass::Engine 来使用它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2014-03-29
      • 2011-11-30
      • 1970-01-01
      相关资源
      最近更新 更多