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
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
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.
Sie können auch in Ihrer weniger Datei einen wichtigen Kommentar hinzufügen /**/
oder @charset "utf-8";
wie hier beschrieben https://github.com/madskristensen/WebEssentials2013/issues/1696
Wow. Das ist eine großartige Antwort. –
Danke, das ist wirklich hilfreich. Stellen Sie sicher, dass Sie Visual Studio neu starten, nachdem Sie die Datei srv-less.js geändert haben. –
brillante Antwort, mein Problem behoben. – punkologist