LESS编译器:意外的令牌u

时间:2015-01-29 16:45:31

标签: less web-essentials

当我尝试使用Web Essentials在Visual Studio中编译LESS模板时,我收到一条错误,上面写着“Unexpected token u”,没有文件名,没有行号,也没有列号。为什么会这样?

3 个答案:

答案 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