2015-12-14 38 views
0

我在OS X 10.11.1上運行最新版本的X代碼。我今天從源安裝了Lua 5.3,沒有任何問題。似乎正常工作。沒有錯誤安裝luarocks,然後使用它來安裝moonscript。但是,從命令行調用時既月亮和moonc提供以下錯誤:Moonscript CLI啓動錯誤與OSX上的Lua 5.3

$ moon 
/usr/local/bin/lua: /usr/local/share/lua/5.3/alt_getopt.lua:24: attempt to call a nil value (global 'module') 
stack traceback: 
    /usr/local/share/lua/5.3/alt_getopt.lua:24: in main chunk 
    [C]: in function 'require' 
    /usr/local/lib/luarocks/rocks/moonscript/0.4.0-1/bin/moon:2: in main chunk 
    [C]: in ? 

望着alt_getopt.lua表明,它確實使用現已解散的「模塊」的關鍵字。在過去的三年中,該模塊的GitHub項目似乎已經停止,並沒有採取任何行動。

我應該如何着手讓Moonscript在我的系統上工作?

回答

2

是的,正如您所指出的,module已被棄用了很長一段時間,並且只使用早期版本,因爲兼容性開關。

您可以註釋掉alt-getopt中的第24行,並將以下行添加到alt-getopt.lua文件的末尾:return {get_opts = get_opts, get_ordered_opts = get_ordered_opts}

這應該使這個模塊Lua 5.2/5.3兼容(我沒有檢查是否有使用Lua 5.3的其他兼容性問題)。

+0

謝謝,保羅!我也必須將月亮的第2行更改爲「alt_getopt = require(」alt_getopt「)',這既固定了月亮,也固定了moonc –

+0

正確;我應該提到這一點,最好是'local alt_getopt = require(」alt_getopt「 )';)。 –