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

我想尝试在 Lua 中加载一个包。 该包是 ansicolors,仅用于获得更好的控制台输出外观。

这只是糖果,我不想强迫用户安装此包。

因此,我尝试了类似以下的内容:

ansicolors = require 'ansicolors' or nil

但正如我所想,它引发了一个找不到模块的错误并停止了执行。

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

点赞
用户1847592
用户1847592
本地状态、模块 = pcall(require, 'ansicolors')
ansicolors = 状态 and 模块 or nil
2013-03-01 09:57:18