Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wscherphof/lua-loader
Manage your Lua modules with npm.
https://github.com/wscherphof/lua-loader
Last synced: about 1 month ago
JSON representation
Manage your Lua modules with npm.
- Host: GitHub
- URL: https://github.com/wscherphof/lua-loader
- Owner: wscherphof
- License: other
- Created: 2013-06-18T06:41:50.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-02-14T09:40:09.000Z (almost 11 years ago)
- Last Synced: 2024-10-06T07:33:31.340Z (about 1 month ago)
- Language: Lua
- Homepage: https://www.npmjs.org/package/lua-loader
- Size: 231 KB
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# lua-loader
Manage your [Lua](http://www.lua.org/) modules with [npm](http://npmjs.org)## Usage
### 0. npm
Download and install [Node.js](http://nodejs.org/download/). 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:
```lua
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:
```lua
local EventEmitter = require("lua-events").EventEmitter
```
And then just use the module for what it's useful for, eg:
```lua
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:
```lua
require("./lib/foo")
```
- From `tests/init.lua` you can load `tests/test-1.lua` with:
```lua
require("./test-1")
```
- From `tests/init.lua` you can load `lib/foo.lua` with:
```lua
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 `./.lua` and that's it.##Tests
`npm test lua-loader`## License
[LGPL+](https://github.com/wscherphof/lua-loader/blob/master/LICENSE.md)