例如:
require('a.b.c/foo.lua')
Lua 引擎会将'a.b.c/...' 翻译成'a/b/c/...' 以在模式列表中搜索文件,对吗? 当'a.b.c'是真正的文件夹名称时会有什么问题吗?如果是,如何解决?
最佳答案
如果您的模块位于包含 .
作为其名称的一部分的目录中,则很难使用 require
将其拉入,因为无法“转义” .
所以 \
替换没有完成。
但是,仍然可以通过 package.path
间接指向 lua 查找正确的位置:
local restorepath = package.path
package.path = "./a.b.c/?.lua"
require 'foo'
package.path = restorepath
但我建议您首先尝试重组您的项目目录结构,以便它更好地与 lua 的 require
一起工作。否则,您将不得不继续使用您可能拥有的其他模块执行上述操作。
关于lua - 当我需要 'a.b' 时,有什么方法可以阻止 lua 将 'a/b' 转换为 'a.b' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189949/