2012-11-26 85 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 }