LESS компилятор: Неожиданный токен u

Когда я пытаюсь скомпилировать LESS-шаблон в Visual Studio с помощью Web Essentials, я получаю сообщение об ошибке "Неожиданный токен u" без имени файла, номера строки и номера столбца. Почему это происходит?

Ответ 1

Перейдите в %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\12.0\Extensions, который является папкой, в которой проживают расширения для каждого пользователя Visual Studio. WebEssentials будет находиться в подпапке с произвольно сгенерированным именем.

Внутри папки WebEssentials откройте файл Resources\nodejs\tools\server\services\srv-less.js и перейдите к строке 65, которая гласит:

map = JSON.parse(output.map);

Проблема вывода исходной карты может быть значением undefined. JSON.parse может анализировать только строки, поэтому перед синтаксическим анализом он передает это значение в строку "undefined", но JSON не распознает это как действительный токен. (Он понимает только нулевое значение, а не значение undefined.)

Итак... измените строку 65 следующим образом:

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

И вуаля; Меньшая компиляция файлов с пустым выходом снова работает.

Источник: https://github.com/madskristensen/WebEssentials2013/issues/1696

Ответ 2

Из моего опыта эта ошибка возникает, когда LESS пытается вывести файл CSS из файла LESS, а полученный файл CSS пуст. В моем случае это произошло после удаления некоторых объявлений font-face, которые оставили полученный файл CSS пустым. LESS не будет компилироваться, пока я не добавлю класс, который будет выводиться в файл CSS.

Подробности можно найти здесь: https://github.com/madskristensen/WebEssentials2013/issues/1696

Я добавляю это в StackOverflow, потому что я не могу получить доступ к Github на своем рабочем месте. Надеюсь, это поможет кому-то.