有可能让Compass生成同时包含压缩和未压缩CSS文件吗?

3
所以我们有一个标准的Compass CSS项目,其中包括sass和css目录。假设,让我们设想.scss文件叫做foo-all.scss。
是否可以通过命令行或config.rb或其他任何方式,让Compass生成两个文件,一个是使用“压缩”样式的foo-all.css文件,另一个是使用“展开”样式的foo-all-debug.css文件?
在我看来,Compass将拒绝生成名称与.scss文件不完全相同的CSS文件,并且你只能指定CSS文件生成到哪个目录。

如果可能的话,请将您的调试文件放入另一个文件夹中,例如/debug——编译时不应出现问题。也许这对您有所帮助:https://dev59.com/s17Va4cB1Zd3GeqPJF6J - Rito
2个回答

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上),需要绝对路径。


2
在我的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’文件需要监视,你可以指定一个整个目录来监视,而不是单个文件(有关更多信息,请参见SASS文档)。”

感谢您的回复。我想我的问题标题可能有误导性,我真正想知道的是如何使用Compass来完成这个事情,而不仅仅是SASS。您是否知道使用Compass实现这一点的有效方法? - voithos
根据我理解 这个 bug,在 Windows 上仅使用 SASS 是不可能的,而且有可能会一直保持这种情况。但是,您可以同时运行两个 Ruby 命令提示符。 - allicarn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接