4 releases (stable)

1.1.3 Nov 8, 2023
1.1.2 Oct 28, 2023
1.1.0 Oct 10, 2023
0.1.0-alpha Aug 30, 2023

#10 in #lua-script

MIT license

18KB
321 lines

Lua Bundler

A customizable Lua Bundler made in Rust

Setup

  1. Run cargo install luabundle, it should download to your cargo bin folder.
  2. Run luabundle in the command prompt to create a new project and in the current directory.
  3. Run luabundle again to bundle your code to the output file.

Options

  • Require Function (default loadmodule)
  • Entry File (default main.lua)
  • Output File (default LuaBundler/bundled.lua)
  • Minify (default false)
  • Beautify (default true)

Usage

Create a file called main.lua (or what you set as the Entry File) in the root folder.
Files that are being required should be treated like a module script.
Use the loadmodule function and pass in a path to a file (paths are relative to the current file).
Use @ before the path to access the root, e.g., loadmodule("@fileAtRootFolder.lua").

Example

Suppose you had a file layout like this

Project Directory/
├── main.lua
└── utils/
    └── fancyprint.lua

Within main.lua

local fancyprint = loadmodule("utils/fancyprint.lua")
fancyprint("Hello world!")

Within fancyprint.lua

local function fancyprint(text)
  print(text + " was printed with fancy text")
end

return fancyprint

Upon running luabundle, the output file would contain the runnable lua code

Dependencies

~20–33MB
~525K SLoC