You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含依赖包的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官方包管理/打包工具)

  1. 先确保已安装好Luvit,然后通过Lit安装discordia依赖:
lit install SinisterRectus/discordia
  1. 直接用Lit打包脚本为EXE,指定输出文件名:
lit make main.lua --output my-discord-bot.exe

执行完这条命令后,当前目录会生成包含所有依赖和Luvit运行时的独立EXE文件。

方法二:使用Luvi(Luvit底层运行时打包工具)

  1. 先安装Luvi:
lit install creationix/luvi
  1. 把你的脚本和已安装的依赖整理到同一个项目目录(比如my-bot),目录结构参考:
my-bot/
├─ main.lua
└─ modules/
   └─ discordia/
  1. 进入项目目录,执行打包命令:
luvi . --output my-discord-bot.exe --main main.lua

注意事项

  • RTC不支持Luvit是因为Luvit基于LuaJIT和libuv构建,自带独立运行时,和标准Lua环境差异较大,必须用Luvit生态的工具打包。
  • 打包后的EXE文件会包含Luvit运行时、你的脚本以及所有依赖,无需额外安装Luvit即可运行。

内容的提问来源于stack exchange,提问作者RealLinen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:22:14