azproduction / lmd

LMD - JavaScript Module-Assembler for building better web applications :warning: Project is no longer supported :warning:
http://azproduction.ru/lmd/
MIT License
449 stars 27 forks source link

LMD: Lazy Module Declaration Build Status NPM version Dependency Status

:warning: Project is no longer supported

Please consider moving to webpack. As LMD uses CommonJS modules it should be straightforward.


New to LMD? See Getting Started, Wiki and examples

Why LMD? Why not AMD?

What's on the board

Other features

  1. Default modules are CommonJS
  2. LMD does not create globals
  3. LMD is standalone, tiny and flexible (minimal only 288bytes!)
  4. Each function-module can be initialized/evaled on demand (lazy: true)
  5. LMD module is as easy to debug as normal JavaScript file
  6. Build system compresses JavaScript files using UglifyJs
  7. LMD module can define object via return or module.exports or exports as CommonJS Module
  8. Module can be wrapped automatically in builder so you can write your modules as node.js modules
  9. Starting from version 1.5.2 LMD can require off-package modules "async": true (see Asynchronous module require)
  10. From version 1.6.0 LMD can cache all in-package modules in localStorage "cache": true (see Local Storage cache)
  11. From version 1.6.2 LMD can include off-package css css: true and js-files js: true(for jsonp, cross-origin JS or non LMD modules)
  12. LMD package is possible to run as Web Worker or execute as Node.js script (see Web Worker and Node.js)
  13. LMD works in all modern browsers and in older IE
  14. LMD can convert non-LMD modules to LMD to use jquery or any other as in-package LMD module (see LMD module form third-party modules)
  15. LMD can protect your code from 3-party modules (see Modules sandbox)
  16. Code Coverage? - Easy! (see Code coverage)
  17. Ready for production - lmd.js is 100% covered by unit tests see test/README.md for details
  18. SourceMap for all LMD modules (see Source map)
  19. Rich CLI interface

Installing

npm install lmd -g global is prefered for LMD CLI comands.

LMD Config file

Minimal

{
    "root": "../modules/",
    "output": "../module.lmd.js", // Path are relative to the root parameter
    "modules": {
        "*": "*.js" // use wildcards or specify regex string to grep
    }
}

See LMD Config for more information

Note

Build LMD package from Console

lmd build your_buiild_name

See LMD CLI

Grunt integration and task

Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-lmd

Then add this line to your project's grunt.js gruntfile:

grunt.loadNpmTasks('grunt-lmd');

See grunt-lmd for details

Special features

Config extras

Testing lmd builds

Bash/zsh completion

Installation lmd completion >> ~/.bashrc (or ~/.zshrc). Do not forget to restart shell.

Other ways

Running tests

phantomjs is required to run test via npm test see test for details

--

LMD is developing with help of these people

If you like LMD - ★ it via npm star lmd