是否可以让Compass生成扩展和压缩的CSS文件?

时间:2012-06-14 00:08:59

标签: compass-sass sass

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

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

在我看来,Compass将拒绝生成与.scss文件名称不完全相同的CSS文件,并且您可以做的最多就是指定生成CSS文件的目录到。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:2)

这似乎是指南针的一个缺陷。这真的是不常见的事吗?无论如何,这就是我的目标。假设文件夹结构如下:

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上)。