当我尝试使用Web Essentials在Visual Studio中编译LESS模板时,我收到一条错误,上面写着“Unexpected token u”,没有文件名,没有行号,也没有列号。为什么会这样?
答案 0 :(得分:26)
转到%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
答案 1 :(得分:1)
根据我的经验,当LESS尝试从LESS文件输出CSS文件时,会发生此错误,并且生成的CSS文件为空。在我的情况下,这是在删除一些font-face
声明后发生的,这使得生成的CSS文件为空。在我添加一个输出到CSS文件的类之前,LESS不会编译。
详情可在此处找到:https://github.com/madskristensen/WebEssentials2013/issues/1696
我将此添加到StackOverflow,因为我无法在我的工作场所访问Github。我希望这有助于某人。
答案 2 :(得分:1)
您还可以在您的较少文件中添加重要评论/**/
或@charset "utf-8";
,如此处所述https://github.com/madskristensen/WebEssentials2013/issues/1696