Итерируйте по всем файлам, и вы можете заменить функцию require на что-то вроде этого:
------------------------------------------------------ HEADER
local files = {}
local globalRequire = require -- Store default require reference
local require = function(path) -- Will return saved file or attempt default lua require
return files[path] or globalRequire(path)
end
------------------------------------------------------ START FILES
files["file1"] = function(...)
------------------------------------------------------ FILE #1 CONTENTS
local hola = require("file2")
local file1 = {}
return file1
------------------------------------------------------ FILES CONTINUE
end
files["file2"] = function(...)
------------------------------------------------------ FILE #2 CONTENTS
local file2 = {}
return file2
------------------------------------------------------ FOOTER
end
------------------------------------------------------ EOF
Обратите внимание, как в большинстве файлов lua вы что-то возвращаете на EOF? Это связано с тем, что файлы в lua являются технически функциональными, поэтому вы можете сделать это следующим образом. Важно также указать параметр (...) с тремя точками, поскольку он также передается модулям, хотя обычно он содержит только имя модуля.
В любом случае, вы можете создать сценарий, который соединит это вместеи это должно работать, или с несколькими настройками.