Browse docs

Bundling to a Lua File

lde bundle takes your project and all of its installed dependencies and merges them into a single self-contained .lua file. The result can be run with any LuaJIT runtime without needing lde installed.

How it works

lde builds your project, installs dependencies into ./target/, then walks every .lua file in that directory. Each file is registered as a package.preload entry under its module name, so require() resolves them from the bundle rather than the filesystem. The final line calls your package’s entrypoint.

Basic usage

lde bundle

This outputs <name>.lua in your project root.

Custom output path

lde bundle --outfile dist/myapp.lua

Bytecode bundle

Pass --bytecode to compile each module to LuaJIT bytecode before embedding. The output is smaller and faster to load, but is only compatible with the LuaJIT version bundled in LDE. It will not run on Lua 5.x or a different LuaJIT build.

lde bundle --bytecode

The bytecode bundle is itself compiled as a single chunk, so the output is a binary .lua file.