我需要基于源文件创建单个lua文件。
即作为输入,我有一个项目,其中有几个使用require语句的模块。作为输出,我需要单个lua文件(仍然是源文件,但捆绑了),之后,我认为它将没有任何require语句。
我该怎么办?
遍历所有文件,您可以将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中的文件在技术上是功能性的,所以您可以通过这种方式来实现。提供(...)三个点的参数也很重要,因为它通常也包含模块名称,尽管它也传递给模块。
无论如何,您可以构建一个将其组合在一起并可以正常工作的脚本,或进行一些调整。