2015-01-29 10 views
11

Wenn ich versuche, eine LESS-Vorlage in Visual Studio mit Web Essentials zu kompilieren, erhalte ich die Fehlermeldung "Unexpected token u" ohne Dateiname, Zeilennummer und Spaltennummer. Warum passiert dies?LESS-Compiler: Unerwartetes Token u

Antwort

26

Gehen Sie zu %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\12.0\Extensions, dem Ordner, in dem sich Visual Studio-Erweiterungen für Benutzer befinden. WebEssentials befindet sich in einem Unterordner mit einem zufällig generierten Namen.

Aus dem Inneren des WebEssentials Ordner, öffnen Sie die Datei Resources\nodejs\tools\server\services\srv-less.js und gehen 65 zu Zeile, in dem es heißt:

map = JSON.parse(output.map); 

Das Problem ist, Kartenausgabequelle sein kann, die nicht definierten Wert. JSON.parse kann nur Zeichenfolgen analysieren, so dass es vor dem Analysieren den Zeichenfolgenwert "undefined" konvertiert, aber JSON erkennt das nicht als gültiges Token. (Es versteht nur den Nullwert, nicht den undefinierten Wert.)

So ... Änderungslinie 65 zu lesen:

map = JSON.parse(output.map || "null"); 

Und voilà; LESS Kompilierung auf Dateien mit leerer Ausgabe funktioniert wieder.

Quelle: https://github.com/madskristensen/WebEssentials2013/issues/1696

+0

Wow. Das ist eine großartige Antwort. –

+3

Danke, das ist wirklich hilfreich. Stellen Sie sicher, dass Sie Visual Studio neu starten, nachdem Sie die Datei srv-less.js geändert haben. –

+0

brillante Antwort, mein Problem behoben. – punkologist

1

Dieser Fehler tritt meiner Erfahrung nach auf, wenn LESS versucht, eine CSS-Datei aus einer LESS-Datei auszugeben, und die resultierende CSS-Datei leer ist. In meinem Fall geschah dies nach dem Entfernen einiger font-face Deklarationen, die die resultierende CSS-Datei leer gelassen. LESS würde erst kompilieren, wenn ich eine Klasse hinzugefügt hätte, die in der CSS-Datei ausgegeben würde.

Einzelheiten hier zu finden: https://github.com/madskristensen/WebEssentials2013/issues/1696

ich bin, diese zu Stackoverflow, weil ich nicht in der Lage bin Github an meinem Arbeitsplatz zugreifen. Ich hoffe, das hilft jemandem.