Как я могу связать сценарии Lua в один файл - PullRequest
2 голосов
/ 08 ноября 2019

Мне нужно создать один файл lua на основе исходных файлов.

, т. Е. В качестве входных данных у меня есть проект, в котором есть несколько модулей, которые используют требуют операторов. В качестве вывода мне нужен один файл lua (все еще исходный файл, но в комплекте), и после этого я предполагаю, что у него не будет никаких require операторов.

Как я могу это сделать?

1 Ответ

0 голосов
/ 09 ноября 2019

Итерируйте по всем файлам, и вы можете заменить функцию 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 являются технически функциональными, поэтому вы можете сделать это следующим образом. Важно также указать параметр (...) с тремя точками, поскольку он также передается модулям, хотя обычно он содержит только имя модуля.

В любом случае, вы можете создать сценарий, который соединит это вместеи это должно работать, или с несколькими настройками.

...