With the lit package manager, you can specify that a published package is an application and tell it what bundling framework to use. Currently this only supports luvi (luajit + libuv + zip asset management in a single binary), but there is no reason it couldn't also support LÖVE, Corona or the other frameworks.
Also to make published application versions stable, lit saves a snapshot of all current dependencies as a git tree hash when publishing. That way if I want to build luvit v2.0.1 I'll always get the exact same set of lua dependencies, even if some of the dependencies have since changed. But when I publish a new version of luvit, it will take a new snapshot of the current dependencies so that I don't need to manually update them. I just need to test to make sure things are working when I publish and they will continue to publish.
Then doing simply `lit make lit://luvit/luvit` will find the latest published luvit release, see it has a tree snapshot of all dependencies, see that it uses a certain version and configuration of luvi, and build a single binary.