我正在编写一个工具来解析其他用户创建的 lua 插件。关于插件的唯一保证是它在已知目录中有一个 data.lua 文件。在那里,用户可以自由地做任何他们想做的事情。这个特定的插件使用 require 来加载一个文件并且该文件加载另一个文件。两者都是相对路径,但第二个是相对于第一个文件的位置。
- 数据.lua
- foo/bar.lua
- foo/baz.lua
数据.lua:
require("foo.bar")
foo/bar.lua:
require("baz")
当我尝试执行 data.lua 时,当 foo/bar.lua 尝试要求“baz”时出现错误。它尝试的路径都不是./foo/。
知道如何解决这个问题吗?我可以找到任何专门关于这种情况的文档,似乎我需要将 /foo/ 硬编码到路径中,但我不提前知道。这似乎应该是自动的,是否有我缺少的设置或者我运行了错误版本的 lua?我正在使用 NLua 4.0
谢谢