2013-02-19 83 views
5

在我的web項目中,出於維護原因,我已將CSS分割爲單獨的LESS文件。我有一個名爲config.less的文件,充當使用@import指令導入其他較少文件的主文件。LESS @import&Web Essentials 2012

這個設置的問題似乎是我得到了很多「未聲明的變量」&「未聲明的mixin」,同時編輯我的LESS文件,例如在base.less中添加名爲@textColor的屬性變量時,在另一個較小的文件中聲明,稱爲variables.less。有什麼方法可以讓web essentials知道在外部較少文件中定義的變量和mixin?

,這似乎是絆倒了網絡必備的另一件事情是,當我使用較少的嵌套的媒體查詢功能:

.some-selector { 
    background: #000; 
    @media only screen and (max-width: 800px) { 
     background: #fff; 
    } 
} 

嵌套@media聲明得到一個紅色下劃線和懸停它說「樣式規則中的意外'@'塊。懸停嵌套的背景屬性顯示「驗證:'顏色'不是一個有效的HTML標記

回答

2

我不能給出關於Web Essentials @media問題的答案,但我可以給變量和mixins問題的建議。

基本上,改變你的config.less文件有variables.less和任何其他混入文件是@import-once,然後還加@import-once 'variables.less到使用變量從它的每個文件(做同樣使用的任何mixin的文件)。

如果你正在處理它(如你的base.less)那麼它會導入文件,但是當所有的文件都由config.less編譯,它只會導入variables.less一次,而不是每個文件也導入variables.less

+1

出於某種原因導入一次不適合我。我有一個只包含導入的主style.less文件。 從那裏我導入一次一個mixin.less文件,它聲明一個.clearfix類,該類包含它應該是...好。 現在在另一個文件中,我還導入了一次mixin.less文件以獲得智能感知,然後將該文件導入到主style.less。我認爲它應該只包含.clearfix類一次,但不幸的是它包含了兩次?有任何想法嗎? – MattyP 2013-02-19 22:53:39

+1

謝謝@ScottS!這正是我正在尋找的。應該更仔細閱讀LESS文檔:)根據文檔,從@ 1.4.0開始,'@ import-once'將是'@ import'的默認行爲。 – Unless 2013-02-20 07:19:19

+0

@MattyP:style.less聽起來像是我的'config.less'文件的等價物。在這種情況下,我們似乎有非常相似的設置。所以編譯的'style.less文件'包含兩次'.clearfix'類? – Unless 2013-02-20 07:34:39

相關問題