0

我在 OS X 10.11.1 上运行最新版本的 X Code。我今天从源代码安装了 Lua 5.3,没有问题。似乎工作正常。安装 luarocks 然后使用它安装 Moonscript 没有错误。但是,当从命令行调用时,moon 和 moonc 都会给出以下错误:

$ 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 项目在过去 3 年里似乎已经死了,没有采取任何行动。

我应该如何继续让 Moonscript 在我的系统上运行?

4

1 回答 1

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 是否有任何其他兼容性问题)。

于 2015-12-14T05:15:04.997 回答