我有类似的东西。
/config.lua
/client/init.lua
如何将config.lua
与include()
或dofile()
包括在一起?
LG
答案 0 :(得分:3)
您可以(并且可能应该)通过将require
添加到../?.lua
来package.path
执行此操作,如下所示:
package.path = package.path .. ";../?.lua"
require "config"
有关详细信息,请参阅require和package.path文档。
答案 1 :(得分:0)
您与dofile
走在正确的轨道上。 (但是,Lua中没有 include
函数。)您可能已经注意到,require
无法执行此操作:< / p>
local cfg = require'../config'
require
通常以单向方向从初始脚本的目录开始工作,并且任何需要自己模块的必需模块必须使用相对名称从该起点开始工作正常。
I.e。,如果您有以下结构:
--+ main.lua requires 'lib.test1' +-- lib/test1.lua requires 'test2' +-- lib/test2.lua
test1.lua
失败需要test2
,因为无法从初始目录中找到它。 lib.test2
是此处的相应模块名称。我不确定是否有任何好的模式,没有编写自己的有状态require
,但了解编写库代码时有用。
对于这个问题,也许这是一个不好的迹象。
回到这个问题,您可以对config
中的package.loaded
文件进行豁免。这实际上是手动加载它:
package.loaded.config = dofile'../config.lua'
-- ...
local cfg = require'config'