2012-06-14 66 views
3

所以我們有一個標準的Compass CSS項目,其中sasscss目錄。作爲一種情況,假設.scss文件被稱爲foo-all.scssCompass是否可以生成擴展和壓縮的CSS文件?

是否有可能,通過命令行或config.rb或任何其他手段,有北斗產生一個foo-all.css文件,使用「壓縮」的風格,也是一個foo-all-debug.css文件中使用「擴張」的風格?

在我看來,Compass將拒絕生成與.scss文件不完全相同的名稱的CSS文件,並且您可以執行的操作最多的是指定將CSS文件生成到哪個目錄。

+0

如果可能的話,把你的調試文件放到另一個文件夾如/ debug中 - 編譯應該沒有問題。也許這在這種情況下是有幫助的:http://stackoverflow.com/questions/8535336/sass-compass-compile-into-many-locations – Rito

回答

2

這看起來有點像Compass中的缺陷。這真的是不常見的事情嗎?無論如何,這是我一起去的。讓我們假設該文件夾結構是這樣的:

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

然後在Rake文件,生成壓縮和膨脹的版本,我這樣做:

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 

從本質上說,我產生了壓縮CSS文件放在單獨的/debug目錄中,然後將其移動到/css目錄,以保留CSS文件中的URL路徑。因爲在使用-css-dir開關(無論如何,在Windows上)時,Compass似乎需要絕對路徑,所以需要使用shenanigans。

2

在我的MacOS X的外殼,我已經能夠產生從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 

(我用的緊湊,而不是壓縮,但例如仍然有效)

這樣做,每次我做出改變original.scss我有相同的文件夾2個更新css文件(用不同的輸出樣式)

當然,如果你有很多scss文件可以觀看,你可以指定一個完整的目錄來觀看,而不是單個文件(see SASS documentation作進一步參考)

+0

感謝您的迴應。我想我的問題的標題是誤導性的;我真的想知道如何使用** Compass **來做同樣的事情,而不僅僅是SASS。你知道用Compass做這件事的有效方法嗎? – voithos

+0

從我在[這個bug](https://github.com/nex3/sass/issues/507)中可以理解的內容來看,在Windows中只有SASS是不可能的,並且可能會保持這種狀態。但是,您可以同時運行2個ruby命令提示符。 – allicarn

相關問題