我一直無法找到一種方法來使其完全自動化。我也不知道您是否希望使用此功能來減少@import
請求或簡單地減少最終的CSS以不加載它不需要的項目。
如果你不需要它是完全自動化的,而你正在尋求減少生成的CSS,並且你沒有太多的類你希望這樣做,那麼你可以做如下的事情:你的styles.less
文件。
//have at the top of the file some variables set to 0 or 1 if the class
//is present or absent in that file
@usesClass-infobox: 0;
//set up a mixin to load it if NOT in the file
.setClass-infobox(@set) when (@set = 0) {
@import 'infobox.less';
}
//a default mixin to do nothing otherwise
.setClass-infobox(@set) {}
//call the mixin
.setClass-infobox(@usesClass-infobox);
當然,這並不能真正幫助自動化過程。畢竟,如果您知道.infobox
不在styles.less
文件中,那麼您只需添加@import
即可,無需任何額外的混合檢查。唯一真正的價值是它設置了一部分變量,基本上告訴編碼器:「嘿,如果你沒有在這裏包含它,那麼就有可以加載這個功能的模塊;所以告訴我,你是否包括它?」
同樣,我不確定這是否完全解決了你要做的事情。我提供了它,因爲它在某些情況下可能對某些人有用。
當您編譯CSS文件時,它不知道您需要'.infobox'風格,除非您明確定義或將其包含在LESS文件中,因爲它對文檔一無所知。 – cimmanon
所以唯一的解決方案是手動包裝編譯器,預編譯所有設計原語,並嘗試在編譯器失敗時添加它們? –