如何将Lua脚本捆绑到单个文件中

问题描述 投票:1回答:1

我需要基于源文件创建单个lua文件。

即作为输入,我有一个项目,其中有几个使用require语句的模块。作为输出,我需要单个lua文件(仍然是源文件,但捆绑了),之后,我认为它将没有任何require语句。

我该怎么办?

build lua bundle
1个回答
0
投票

遍历所有文件,您可以将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中的文件在技术上是功能性的,所以您可以通过这种方式来实现。提供(...)三个点的参数也很重要,因为它通常也包含模块名称,尽管它也传递给模块。

无论如何,您可以构建一个将其组合在一起并可以正常工作的脚本,或进行一些调整。

© www.soinside.com 2019 - 2024. All rights reserved.