2013-02-19 11 views
5

In meinem Webprojekt habe ich mein CSS aus Wartungsgründen in separate LESS-Dateien aufgeteilt. Ich habe eine Datei namens config.less als Master-Datei, die die anderen weniger Dateien importiert, mit @ Import-Anweisungen.LESS @import & Web Essentials 2012

Das Problem mit diesem Setup scheint zu sein, dass ich eine Menge "Undeclared Variable" & "Undeclared Mixin" beim Bearbeiten meiner LESS-Dateien, zum Beispiel beim Hinzufügen einer Eigenschaftsvariablen namens @ TextColor in base.less, das ist in einer anderen weniger Datei mit dem Namen variables.less deklariert. Gibt es eine Möglichkeit, Web Wesentliches auf Variablen und Mixins aufmerksam zu machen, die in externen, weniger Dateien definiert sind?

andere Sache, die Web Essentials-Stolpern zu sein scheint, wenn ich die verschachtelte Abfrage Medien-Funktion von LESS bin mit:

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

Die Erklärung verschachtelte @media erhält eine rot unterstrichen und auf schweben sie sagt, "Unerwarteter '@' Block in der Stilregel". Hovering die verschachtelte Hintergrund-Eigenschaft zeigt eine "Validierung: 'Farbe' ist kein gültiges HTML-Tag.

Antwort

2

Ich kann keine Antwort auf das @media Problem mit Web Essentials geben, aber ich kann Ratschläge zu den Variablen und Mixins Problem geben.

Grundsätzlich Ihre config.less Datei ändern, um die variables.less und alle anderen mixin Dateien haben @import-once zu sein, fügen sie dann auch @import-once 'variables.less in jede Datei, die Variablen von ihm (das gleiche tun für alle mixin Dateien verwendet wird) verwendet.

Was das ist, importiert die Datei, wenn Sie daran arbeiten (wie Ihre base.less), aber wann Alle Dateien werden von config.less kompiliert, es wird nur einmal die variables.less importieren und nicht erneut für jede Datei, die auch die variables.less verweist.

+1

Aus irgendeinem Grund funktioniert Import-Once nicht für mich. Ich habe eine Hauptdatei style.less, die nur Importe enthält. Von dort importiere ich-einmal eine mixin.less-Datei, die eine .clearfix-Klasse deklariert und die Klasse ist enthalten, wie es sein sollte ... Gut. Jetzt in einer anderen Datei importiere ich auch-einmal die mixin.less-Datei, um intellisense zu bekommen, und dann-importieren Sie diese Datei zum Haupt style.less. Ich würde denken, dass es nur die .clearfix-Klasse einmal enthalten sollte, aber leider ist es zweimal enthalten? irgendwelche Ideen? – MattyP

+1

Danke @ScottS! Das war genau das, wonach ich suchte. Ich hätte mir die LESS-Dokumentation noch genauer durchlesen müssen :) Laut den Dokumenten ist '@ import-once' das Standardverhalten von' @ import' ab Version 1.4.0. – Unless

+0

@MattyP: Das style.less klingt wie das Äquivalent zu meiner Datei 'config.less'. In diesem Fall scheinen wir ähnliche Konfigurationen zu haben. Also enthält die kompilierte 'style.less-Datei' zweimal die Klasse' .clearfix'? – Unless

Verwandte Themen