如何优雅地尝试在Lua中加载包?

时间:2013-03-01 09:46:41

标签: lua packages

我想尝试在Lua中加载一个包。 包是ansicolors,只是为了让控制台输出更好。

这是糖,我不希望用户被迫安装此软件包。

所以我尝试了类似的东西:

ansicolors = require 'ansicolors' or nil

但是正如我想的那样,它会引发一个模块未找到错误并停止执行。

所以我的问题是:在不可能的情况下,是否有一个优雅的解决方案来尝试加载软件包并回退更简单的解决方案?

1 个答案:

答案 0 :(得分:20)

local status, module = pcall(require, 'ansicolors')
ansicolors = status and module or nil