如何将含依赖包的Luvit Lua脚本编译为EXE文件
将Luvit Lua脚本打包为包含依赖的EXE文件
问题背景
我有一段可通过Luvit运行的Discord机器人Lua脚本:
local discordia = require('discordia') local client = discordia.Client() client:on('ready', function() print('Logged in as '.. client.user.username) end) client:on('messageCreate', function(message) if message.content == '!ping' then message.channel:send('Pong!') end end) client:run('')
我尝试过使用RTC工具(仅支持标准Lua脚本编译),但它无法处理Luvit相关的依赖,想知道怎么把这个脚本连同所有依赖(比如discordia)一起打包成独立的EXE文件。
解决方案
Luvit有自己的生态打包工具,不需要依赖标准Lua的编译工具,推荐用以下两种方法:
方法一:使用Lit(Luvit官方包管理/打包工具)
- 先确保已安装好Luvit,然后通过Lit安装discordia依赖:
lit install SinisterRectus/discordia
- 直接用Lit打包脚本为EXE,指定输出文件名:
lit make main.lua --output my-discord-bot.exe
执行完这条命令后,当前目录会生成包含所有依赖和Luvit运行时的独立EXE文件。
方法二:使用Luvi(Luvit底层运行时打包工具)
- 先安装Luvi:
lit install creationix/luvi
- 把你的脚本和已安装的依赖整理到同一个项目目录(比如
my-bot),目录结构参考:
my-bot/ ├─ main.lua └─ modules/ └─ discordia/
- 进入项目目录,执行打包命令:
luvi . --output my-discord-bot.exe --main main.lua
注意事项
- RTC不支持Luvit是因为Luvit基于LuaJIT和libuv构建,自带独立运行时,和标准Lua环境差异较大,必须用Luvit生态的工具打包。
- 打包后的EXE文件会包含Luvit运行时、你的脚本以及所有依赖,无需额外安装Luvit即可运行。
内容的提问来源于stack exchange,提问作者RealLinen
相关产品推荐
相关产品推荐

