3

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

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

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

4

2 回答 2

2

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

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

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

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

当然,如果您有很多scss文件要查看,您可以指定要查看的整个目录而不是单个文件(请参阅 SASS 文档以获取更多参考)

于 2012-06-14T15:19:39.047 回答
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

In essence, I generate the compressed CSS file in a separate /debug directory, and then move it up to the /css directory, to preserve URL paths in the CSS file. The debudir shenanigans are necessary because Compass seems to require an absolute path when using the -css-dir switch (on Windows, anyway).

于 2012-06-20T17:26:15.813 回答