加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Ruby的Compass(不是shell)

发布时间:2020-12-16 23:35:44 所属栏目:百科 来源:网络整理
导读:我正在Ruby中构建一个脚本,我想用Compass编译一个SCSS文件.我试图尽可能简单,并希望避免使用config.rb文件.我只想通过直接Ruby设置一些设置,并告诉Compass将单个SCSS文件编译成CSS文件. 我知道这必须是可能的,但我还没有找到关于如何做到这一点的任何体面的
我正在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为1)不会自动包含这些选项.尝试导入Compass函数和mixins时,这可能会导致错误,例如:

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

指南针< 1.0.0(a.k.a.“老路”) 以下是如何在不覆盖这些默认值的情况下调用编译器:

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,导致……

指南针> = 1.0.0(a.k.a.“新方式”)

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

require 'compass'
require 'compass/sass_compiler'

Compass.add_configuration(
    {
        :project_path => '.',can be anything you want
)

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

compiler.compile!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读