Lua: 本地的package.path

在 Lua 中有没有一种方法可以定义 package.path 仅适用于本地作用域?

我知道可以将 package.path 存储在局部变量中,并在脚本结束前恢复它,如下面的示例,但是否有更简洁的方法?

local startingPackagePath = package.path
package.path = "../Lib/?.lua;" .. package.path
local someLib = require "someLib"
package.path = startingPackagePath
--Do some stuff
点赞
用户1442917
用户1442917

我认为没有更短的方法使 package.path 只针对某个模块,但是您可以考虑使用 package.preload 提供自定义加载器,该加载器可以查看模块特定的路径。

2015-07-24 05:58:27