2012-12-09 3 views
5

Ich habe 2 LESS-Dateien. Globals.less und Site.less. Globals.less enthält alle meine globalen (go figure) Variablen und einen Import in eine CSS-Reset-Definition. Site.less enthält die verwendeten Stile.Nicht deklarierte Variable mit LESS @ import. Was verursacht das? Gibt es eine Lösung?

Globals.less:

//Imports 
@import "CSSReset.less"; 

//Colors 
@color-background: rgb(0, 0 , 0); 

Site.less:

@import "Globals.less"; 

body { 
    background: @color-background url('/Images/BackgroundTextureBody.png'); 
} 

Das Problem ist folgendes: In Visual Studio @ color-Hintergrund in Site.less ist unterstrichen und der Fehler „Nicht angemeldete Variable ", aber die LESS kompiliert zu CSS einfach gut und die Hintergrundfarbe ist richtig auf # 000 eingestellt. Es ist mehr ein Ärgernis als alles andere, aber ich verliere Intellisense und ich bekomme Warnungen in meiner Fehlerliste. Ich möchte, dass der Editor wie erwartet agiert und in der Lage ist, meine Deklarationen in Globals.less zu "sehen", wenn ich Site.less bearbeite. Mache ich etwas falsch, ist das ein Fehler, oder ist meine Umgebung nicht richtig eingerichtet?

Antwort

1

Es stellt sich heraus, dass ich eine ältere Version von Web Essentials 2012 verwendet habe. Das erste, was ich überprüfen und nicht tun sollte, war sicherzustellen, dass meine Umgebung auf dem neuesten Stand war. Durch die Aktualisierung von Web Essentials auf die neueste Version wurde das Problem behoben.

2

Es scheint, dass Visual Studio (oder es ist weniger Interpreter) versteht nicht, den Umfang der Variablen innerhalb des importierten Globals.less

Importieren von Variablen ist eine normale und gemeinsame Sache zu tun, so würde ich vorschlagen, dass es ein Fehler oder fehlende Funktion in Ihrem Visual Studio-Setup.

7

Um Intellisense für eine bestimmte weniger Datei zu erhalten, können Sie einen Referenzpfad auf die gleiche Weise hinzufügen, wie Sie Intellisense in einer js-Datei erhalten würden.

Beispiel

/// <reference path="Globals.less" /> 

@import "Globals.less"; 

body { 
    background: @color-background url('/Images/BackgroundTextureBody.png'); 
} 
+1

Große Spitze, arbeitet mit .scss zu Dateien. – JohnnyHK

+0

Aus irgendeinem Grund weigert sich das einfach für mich zu arbeiten. Ich habe die Standard-VS-Bootstrap-Installation, versucht, /// zu verwenden und weigert sich, loszuwerden, wenn das nicht deklarierte Variablenproblem. Darunter sind meine bootstrap.less und theme.less @imports. Version 2.2. –

+1

Ich habe das auf '|' Zeichen in dieser Zeile: @import url ("// fonts.googleapis.com/css?family=Open Sans | Roboto"); Sieht wie ein Fehler in 2.2 aus. Entfernen Sie "| Roboto", speichern, neu laden und intellisense funktioniert! –

Verwandte Themen