2012-11-26 84 views
2

我得到一个奇怪的LESS编译错误,消息如下的方法“的charAt”:LESS编译错误:无法调用空

non_object_property_callError: Cannot call method 'charAt' of null in /Volumes/Windows/Program Files (x86)/Ampps/www/custom-site/templates/custom-template/less/style.less:null:-1 1 @import "icomoon/icomoon.less";

的代码导致错误如下:

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

@import "mixins.less"; 

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

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

任何帮助,将不胜感激。

+0

尝试分离进口与此行:'// --'。这是LESSHat库的一个修复程序,它帮助我克服导入问题(尽管我不确定这是否是同一个错误)。 – Pavlo

回答

1

说“少不能报告确切的问题”实际上只有真相。

究竟发生了什么,编译器不能编译更少的代码,因为它存在问题,所以编译器会触发其错误处理以显示错误的位置。但是,这样做会发生例外情况。因此,您只会看到基本上由较少编译器中的错误引起的相同异常。

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

那么,什么是此处的选项:

  • 如果您不能切换到较新的版本少,继续尝试注释掉你更少的代码部分发现问题。我知道,这根本不好玩。我不得不这样做了一段时间...
  • 如果你可以升级到较新版本的lessc,试试这个,你我得到很好的错误处理,如下面的例子显示。少编译

错误样品:

$ 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 }