2

我收到一个奇怪的 LESS 编译错误,消息如下:

non_object_property_callError:无法在 /Volumes/Windows/Program Files (x86)/Ampps/www/custom-site/templates/custom-template/less/style.less:null:-1 1 @import 中调用 null 方法“charAt” icomoon/icomoon.less";

导致错误的代码如下:

@import "imports/variables.less";
@import "icomoon/icomoon.less";

@import "mixins.less";

我尝试只编译这两个文件,一切顺利。所以这告诉我,错误在于 LESS 准确报告错误来源的能力。在 nodejs 编译器上测试,返回相同的错误。对所有其他编译器进行测试仍然会出现此错误...

为了尝试找到错误的根源,我很自然地在 import 调用后将 style.less 文件中的剩余代码注释掉了,但错误仍然存​​在。这里的问题是我不知道错误在哪里,尽管我怀疑它在调用导入之后的某个地方。

任何帮助,将不胜感激。

4

1 回答 1

1

说“少是不能报告确切的问题”实际上只是有道理。

确切的情况是,less 编译器无法编译您的 less 代码,因为其中存在问题,因此编译器触发其错误处理以显示错误所在。但是,这样做会发生异常。因此,您只会看到相同的异常,这基本上是由 less 编译器中的错误引起的。

有关详细说明,请参阅修复问题的拉取请求 (https://github.com/cloudhead/less.js/pull/703)。

那么,这里有哪些选项:

  • 如果您无法切换到较新的 less 版本,请继续尝试通过注释掉部分 less 代码来查找问题。我知道,这根本不好玩。我也不得不和这个一起去一段时间......
  • 如果你可以升级到更新版本的lessc,试试这个,你会得到很好的错误处理,如下面的例子所示。

less 编译器的错误示例:

$ lessc style.less > style.css
NameError: variable @bla is undefined in assets/less/included.less:3:20
2   background: url(../img/wall-texture.png);
3   background-color: @bla;
4 }
于 2013-01-26T21:11:26.357 回答