LESS编译器:意外的令牌u

11
当我使用Web Essentials在Visual Studio中尝试编译LESS模板时,会出现一个错误提示:“Unexpected token u”,没有文件名、行号和列号信息。为什么会发生这种情况?
3个回答

27

进入 %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不会将其识别为有效的标记。(它只理解null值,而不是undefined值。)

所以...将第65行更改为:

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

完成了; 现在可以再次对空输出文件进行LESS编译。

来源: https://github.com/madskristensen/WebEssentials2013/issues/1696


哇,这是一个很棒的答案。 - user677526
4
谢谢,这真的很有帮助。确保在更改 srv-less.js 文件后重新启动 Visual Studio。 - Alexander van Trijffel
非常棒的答案,解决了我的问题。 - punkologist
哈哈。你知道吗,我突然想到 - 如果我的工作场所允许我访问Github的话,我本来就能够更好地解决问题,取得更大的成功并减少压力!严苛的政策在我们生活的未来没有任何发展空间。唉。 - user677526
此外 - 我希望你已经为你的修复提交了一个拉取请求,Jeff M。 - user677526

1
根据我的经验,当LESS尝试从一个LESS文件输出CSS文件时,在结果CSS文件为空的情况下会出现这个错误。在我的例子中,我移除了一些font-face声明,使得最终的CSS文件为空。在我添加了一个能够输出到CSS文件的类之前,LESS无法编译。可以在此处找到详细信息: https://github.com/madskristensen/WebEssentials2013/issues/1696 由于我无法在工作场所访问Github,因此将此内容添加到StackOverflow上,希望这对某些人有所帮助。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接