【问题标题】:Is it possible to have Compass generate both expanded and compressed CSS files?是否可以让 Compass 生成扩展和压缩的 CSS 文件?
【发布时间】:2015-06-29 23:54:03
【问题描述】:

所以我们有一个标准的 Compass CSS 项目,包含 sasscss 目录。作为一个场景,假设.scss 文件被称为foo-all.scss

是否有可能通过命令行或config.rb 或任何其他方式让 Compass 生成 both 使用“压缩”样式的 foo-all.css 文件以及 foo-all-debug.css使用“扩展”样式的文件?

在我看来,Compass 似乎会拒绝生成与 .scss 文件名称不同的 CSS 文件,并且您最多可以指定生成 CSS 文件的目录。

【问题讨论】:

标签: compass-sass sass


【解决方案1】:

在我的 MacOS X shell 上,我已经能够以这种方式从 original.scss sass 文件生成两个不同的 css(production.cssdevelopment.css

fc-iMac:sass fcalderan$ sass -t compact --watch original.scss:production.css & 
                        sass -t expanded --watch original.scss:development.css

(我使用的是compact而不是compressed,但示例仍然有效)

这样做,每次我对 original.scss 进行更改时,我都会在同一个文件夹中获得两个更新的 css 文件(具有不同的输出样式)

当然,如果您有很多 scss 文件要查看,您可以指定要查看的整个目录而不是单个文件(see SASS documentation 供进一步参考)

【讨论】:

  • 感谢您的回复。我想我的问题的标题具有误导性;我真的很想知道如何使用 Compass 来做同样的事情,而不仅仅是 SASS。您是否知道使用 Compass 执行此操作的有效方法?
  • 根据我在this bug 中的理解,仅使用 SASS 在 Windows 中是不可能的,并且很可能会保持这种状态。但是,您可以同时运行 2 个 ruby​​ 命令提示符。
【解决方案2】:

这似乎有点像 Compass 的缺陷。这真的是一件不寻常的事情吗?无论如何,这就是我的选择。假设文件夹结构是这样的:

Rakefile
/foo
    /resources
        /css
            /debug
        /sass
            foo-all.scss

然后在 Rakefile 中,生成压缩和扩展版本,我这样做:

Dir.chdir "foo/resources/sass" do
    # Compile both expanded and compressed variations
    debugdir = File.join(File.dirname(__FILE__), 'foo/resources/css/debug')

    sh "compass compile --output-style compressed --force"
    sh "compass compile --output-style expanded --force --css-dir #{debugdir}"
    mv "../css/debug/foo-all.css", "../css/foo-all-debug.css"
end

本质上,我在单独的/debug 目录中生成压缩的CSS 文件,然后将其移至/css 目录,以保留CSS 文件中的URL 路径。 debudir 恶作剧是必要的,因为 Compass 在使用 -css-dir 开关时似乎需要绝对路径(无论如何,在 Windows 上)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2013-10-28
    相关资源
    最近更新 更多