所以我们有一个标准的Compass CSS项目,包含sass
和css
目录。作为一种场景,假设.scss
文件名为foo-all.scss
。
是否可以通过命令行或config.rb
或任何其他方式让Compass使用“压缩”样式生成两个一个foo-all.css
文件,还可以使用“扩展”样式的foo-all-debug.css
文件?
在我看来,Compass将拒绝生成与.scss
文件名称不完全相同的CSS文件,并且您可以做的最多就是指定生成CSS文件的目录到。
答案 0 :(得分:2)
在我的MacOS X shell上,我已经能够以这种方式从production.css
sass文件生成两个不同的css(development.css
和original.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上)。