Manage your Lua modules with npm.
Lua
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
tests
.gitignore
LICENSE.md
README.md
init.lua
package.json
test.lua

README.md

lua-loader

Manage your Lua modules with npm

Usage

0. npm

Download and install Node.js. Then you have npm

1. Install

In the root of your project, npm install lua-loader

2. Initialise

In the main lua file in your project:

require("node_modules.lua-loader.init")

Now require() knows all the new tricks.

3. Have fun

Require modules

Install the lua npm package you want to use in your project, eg. npm install lua-events. This will install the package as expected in ./node_modules/lua-events. You can now just:

local EventEmitter = require("lua-events").EventEmitter

And then just use the module for what it's useful for, eg:

local myObj = EventEmitter:new({text = "Hello, world!"})
function myObj:talk ()
  self:emit("spoken", self.text)
end
myObj:on("spoken", function (text)
  print("myObj said", text)
end)
myObj:talk()

Require source files

Suppose the following directory structue:

project-root
├── init.lua
├─┬ lib
│ └── foo.lua
└─┬ tests
  ├── init.lua
  └── test-1.lua
  • From init.lua you can load lib/foo.lua with:
require("./lib/foo")
  • From tests/init.lua you can load tests/test-1.lua with:
require("./test-1")
  • From tests/init.lua you can load lib/foo.lua with:
require("../lib/foo")

Limitations

  • Doesn't read the package.json. So won't respect the main entry in there. Tries to load ./init.lua or else ./<package name>.lua and that's it.

##Tests npm test lua-loader

License

LGPL+