2016-05-15 81 views
1

假設我有一個很大的Sass/Less項目,比如Bootstrap,並且我想使用它的一個單獨的元素(比如說一個文本框)。是否可以讓Sass/Less編譯僅僅需要的類,引用跨越多個文件的任何變量和mixin,只是爲了編譯1(或2,或5,或10)類?可以將Sass或Less配置爲只編譯某些類嗎?

+0

你可以用'reference'進口例如可用的插件。雖然通常整個方法很奇怪,但要使用單個類(通常只有大約5-10個CSS屬性),您會參考並依賴10k行代碼項目及其所有輔助垃圾嗎?嗯...所以問題是爲什麼你不能自己寫一個單一的類代碼(通常是少花幾倍的時間和更容易維護的時間)? –

+0

真正我要做的是讓自動化軟件抓取我的代碼來確定我使用的類(或者在模擬瀏覽器中使用測試來發現類列表),並僅爲這些類編譯CSS,以縮短資源加載時間並使文件變小。 –

+0

這種方式更適合於另一種工具(比如「CSS優化器/收縮器」)而不是CSS預處理器(基本上,CSS預處理器語言/工具的目的是從一種語言轉換到另一種語言,而不是優化/分析/縮小/處理所產生的CSS)。 –

回答

2

您可以通過添加括號來創建不會立即執行的mixin。在my less library中,我使用了一個節點腳本來創建一個我可以參考的autoload.less文件。

從那裏,我創造我final類爲:

@import "autoload.less"; 

.myClass { 
    #myLessModule > .aMixin(); 
} 

我不認爲這是一個完美的解決方案,但它工作得相當好對我來說,和所產生的樣式表不包含多餘的花式。

1

目前在Less/Sass中沒有任何功能可以容納此功能。你正在尋找的是一個後期構建過程,以刪除未使用的CSS類。最值得注意的是目前Uncss這對於大多數構建工具(咕嘟咕嘟,咕嚕聲等)

+1

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/13268043) –

+0

@EmreBolat這個鏈接只是針對推薦工具的項目回購。答案更新以增加更清晰的答案。 – JustH

+0

這個答案似乎與我所尋找的最接近。 –

相關問題