Skip to content

Package Files

Pushing someone else’s library means knowing exactly where it lives inside their sync folder, and which sourcemap goes with it. That’s a mouthful:

Terminal window
azul push -s ./sync/ReplicatedStorage/MyLibrary -d ReplicatedStorage.Libraries --from-sourcemap ./mylibrary.sourcemap.json

A package file (azul.package.json) solves this. It sits at the root of your project and tells Azul which folder to push and which sourcemap to use:

azul.package.json
{
"packageRoot": "./sync/ReplicatedStorage/MyLibrary",
"fromSourcemap": "./mylibrary.sourcemap.json"
}

Point azul push at the package’s folder (or at the azul.package.json itself), and only choose where it goes:

Terminal window
azul push -s ./AzulPackages/MyLibrary -d ReplicatedStorage.Libraries

Package files also work as the source of a push mapping. You can even push a whole folder of packages at once, see Package Management.

FieldRequiredDescription
packageRootYesThe folder whose contents get pushed into the destination. If your package is a single module with children, point it at the script instead (e.g. ./sync/ReplicatedStorage/MyLibrary.luau).
fromSourcemapNoThe sourcemap to push from. Leave it out if your package is entirely code.

Both paths are relative to the azul.package.json, not to wherever Azul is run from.

You don’t have to write it by hand. Run azul pack without any flags and answer yes to “Is this a package?”. Azul will ask for the package root and write an azul.package.json pointing at the sourcemap it just packed.

If an azul.package.json already exists, azul pack leaves it alone. If you later pack to a different output path, update fromSourcemap yourself.