2016-08-31 48 views
0

我正在尋找一種方法將我的sass編譯成2個不同的輸出以供開發和生產。我已經能夠通過採用以下方法來實現這個工作正常https://coderwall.com/p/gqqfgw/sass-compass-compile-two-different-files-for-development-and-production-environment-take-2如何獲得sass來編譯css的開發和生產版本?

我遇到的問題是,我需要的輸出內容是不同的。對於CMS我使用任何文件(圖像,字體等)在CSS引用需要轉換成標籤(獨特的CMS),而我的開發版本我需要圖像的本地路徑。

我已經能夠在它們之間進行切換通過在SASS文件,像這樣使用一個變量:

@if $output == dev { 
     background: #FFFFFF url('../images/this-is-my-local-image.jpg') 0 0 repeat-x; 
    } @else { 
     background: #FFFFFF url('<IMG type="media" id="216155" formatter="path/*"/>') 0 0 repeat-x; 
    } 

不過,我需要一種方法能夠輸出,而不必去在這兩個變化的文件並每次更改$ output變量。

我已經做了一些關於在config.rb文件中使用變量的閱讀,但無法找到我應該如何去實現我所需要的。

任何意見或在正確的直接點將不勝感激。

謝謝。

回答

0

爲什麼不製作2個將被編譯的專用輸出文件。

dev.scss

$output = 'dev' 
@include your files 

prod.scss

$output = 'prod' 
@include your files 

所以,你只需要切換出生成的文件。

+0

謝謝,就是我在找的東西。如果我想要我的生產版本被壓縮,但我的開發版本不需要通過config.rb文件完成? – eh21

+0

以及我不知道你在用什麼,但看看minify和uglify –

+0

編譯我指南針觀看與config.rb文件的文件夾,我設置output_style設置爲壓縮爲我的縮小版 – eh21

0

做到這一點的一種方法是爲開發和生產創建一個單獨的sass文件。在新文件中,您可以分別將$output的值設置爲devprod,然後導入具有在下一行中定義的所有css的sass文件。生成的輸出css將使用相應文件中定義的變量值。

+0

謝謝,這適用於我。如果我想要我的生產版本被壓縮,但我的開發版本不會通過config.rb文件完成? – eh21

相關問題