gpt4 book ai didi

ruby - 从 Ruby(不是 shell)使用 Compass

转载 作者:数据小太阳 更新时间:2023-10-29 06:50:00 24 4
gpt4 key购买 nike

我正在用 Ruby 构建一个脚本,我想在其中使用 Compass 编译单个 SCSS 文件。我试图使它尽可能简单,并希望避免使用 config.rb 文件。我只想通过直接 Ruby 设置几个设置,并告诉 Compass 将单个 SCSS 文件编译成一个 CSS 文件。

我知道这必须是可能的,但我还没有找到任何关于如何做到这一点的合适文档。任何帮助将不胜感激。

最佳答案

你是对的,关于如何从 Ruby 使用 Compass 并没有真正全面的文档。这很不幸,但我们不要让文档等小细节阻止我们!

第一次尝试

当我想做同样的事情时,我只是在 compass 周围闲逛 source并且能够将这个小的 Ruby 脚本组合在一起。乍一看,它似乎可以解决问题:

require 'compass'
require 'sass/plugin'

compiler = Compass::Compiler.new(
# Compass working directory
'.',
# Input directory
'styles/scss',
# Output directory
'styles/css',
# Compass options
{ :style => :compressed }
)

compiler.compile('test.scss', 'test.css')

但显然 Compass 有一堆默认配置选项,在直接调用编译器构造函数时不会自动包含这些选项(SASS load_path 就是其中之一)。这可能会在尝试导入 Compass 函数和 mixins 时导致错误,例如:

error: File to import not found or unreadable: compass/css3

Compass <1.0.0(又名“旧方法”)

下面是调用编译器而不覆盖这些默认值的方法:

require 'compass'

Compass.add_configuration(
{
:project_path => '.',
:sass_path => 'styles/scss',
:css_path => 'styles/css'
},
'custom' # A name for the configuration, can be anything you want
)
Compass.compiler.compile('test.scss', 'test.css')

但是,从 Compass 版本 1.0.0 开始,Compass.compiler 已被弃用,取而代之的是 Compass.sass_compiler,导致...

Compass >=1.0.0(又名“新方式”)

感谢@philipp寻找 how to use the new API ,我们可以再次更新此代码段以使用 Compass.sass_compiler:

require 'compass'
require 'compass/sass_compiler'

Compass.add_configuration(
{
:project_path => '.',
:sass_path => 'styles/scss',
:css_path => 'styles/css'
},
'custom' # A name for the configuration, can be anything you want
)

compiler = Compass.sass_compiler({
:only_sass_files => [
'styles/scss/test.scss'
]
})

compiler.compile!

关于ruby - 从 Ruby(不是 shell)使用 Compass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com