Kirill Akulov
Есть примеры как require переопределяют?
Например, вот так можно описать require без кеширования скриптов.
function MyRequire(scriptname)
local root = "c:/bin/lua"
local path = root .. "/" .. scriptname .. ".lua"
local file = assert( io.open(path, 'rb') )
local code = file:read("*all")
file:close()
-- err - ошибка в коде при парсинге файла
-- scriptname передаётся
-- чтобы текст ошибок был привязан к
-- scriptname, а не "ошибка в чанке кода"
local func, err = loadstring(code, scriptname)
if not func then error(err) end
return func()
end