LESS编译器:意外的令牌u

jed*_*ung 11 less web-essentials

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

Jef*_*eff 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);
Run Code Online (Sandbox Code Playgroud)

问题是源映射输出可能是未定义的值.JSON.parse只能解析字符串,因此它会"undefined"在解析之前将其转换为字符串值,但JSON不会将其识别为有效令牌.(它只能理解空值,而不是未定义的值.)

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

map = JSON.parse(output.map || "null");
Run Code Online (Sandbox Code Playgroud)

瞧!对空输出文件的较少编译再次起作用.

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

  • 谢谢,这真的很有帮助.确保在更改srv-less.js文件后重新启动Visual Studio. (3认同)