如何使用.lua导航到上面的目录

时间:2013-12-17 17:58:18

标签: path lua directory

我有类似的东西。

/config.lua
/client/init.lua

如何将config.luainclude()dofile()包括在一起? LG

2 个答案:

答案 0 :(得分:3)

您可以(并且可能应该)通过将require添加到../?.luapackage.path执行此操作,如下所示:

package.path = package.path .. ";../?.lua"
require "config"

有关详细信息,请参阅requirepackage.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'