Когда я пытаюсь скомпилировать LESS-шаблон в Visual Studio с помощью Web Essentials, я получаю сообщение об ошибке "Неожиданный токен u" без имени файла, номера строки и номера столбца. Почему это происходит?
LESS компилятор: Неожиданный токен 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 на своем рабочем месте. Надеюсь, это поможет кому-то.
Ответ 3
Вы также можете добавить в свой файл меньшего размера важный комментарий /**/
или @charset "utf-8";
, как описано здесь https://github.com/madskristensen/WebEssentials2013/issues/1696