Когда я пытаюсь скомпилировать LESS-шаблон в Visual Studio с помощью Web Essentials, появляется сообщение об ошибке «Неожиданный токен u» без имени файла, номера строки и номера столбца. Почему это происходит?LESS Компилятор: Неожиданный токен u
ответ
Перейти к %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);
Проблема заключается источник карты вывод может быть неопределенным значением. JSON.parse
может анализировать только строки, поэтому перед синтаксическим анализом он выводит это строковое значение "undefined"
, но JSON не признает это действительным токеном. (Он понимает только нулевое значение, а не неопределенное значение.)
Итак ... изменение строки 65 следующим образом:
map = JSON.parse(output.map || "null");
и вуаля; Меньшая компиляция файлов с пустым выпуском работает снова.
Источник: https://github.com/madskristensen/WebEssentials2013/issues/1696
Из моего опыта эта ошибка возникает, когда LESS пытается вывести файл CSS из файла LESS, а полученный файл CSS пуст. В моем случае это произошло после удаления некоторых объявлений font-face
, которые оставили полученный файл CSS пустым. LESS не будет компилироваться, пока я не добавлю класс, который будет выводиться в файл CSS.
Подробности можно найти здесь: https://github.com/madskristensen/WebEssentials2013/issues/1696
Я добавляю это StackOverflow, потому что я не могу получить доступ к Github на моем рабочем месте. Я надеюсь, что это помогает кому-то.
Вы также можете добавить в ваш файл меньше важное замечание /**/
или @charset "utf-8";
, как описано здесь https://github.com/madskristensen/WebEssentials2013/issues/1696
Wow. это отличный ответ. –
Спасибо, это действительно полезно. Убедитесь, что вы перезапустили Visual Studio после изменения файла srv-less.js. –
блестящий ответ, исправлен мой выпуск. – punkologist