Giter VIP home page Giter VIP logo

lua-loader's Introduction

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+

lua-loader's People

Contributors

wscherphof avatar wouteraj avatar

Stargazers

Tomás Pollak avatar Daniel Richards avatar Rory Bradford avatar Kevin Brey avatar  avatar Sebastiaan Marynissen avatar William Casarin avatar Robert Chiniquy avatar Mikola Lysenko avatar Lilith River avatar Stephen Sugden avatar Daogang Tang avatar Arnout Kazemier avatar

Watchers

 avatar  avatar

lua-loader's Issues

Consider dual-licensing/switching to a more liberal license?

Hi!

First of all, thanks for the awesome work, finding this library was a nice surprise. I've been working on a similar system to yours, but instead of using npm, I've been using bower since it is simpler (which was something I was looking for in case I needed to fork outright the package manager) and was easy to install my own repository.

Anyways, the thing I'm asking is to consider granting the project/us a more liberal license (MIT/Apache would work) since there is not clear wether we can modify this library to use our bower repos and still comply with the LGPL on our educational iOS/Android games.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.