x-module

0.0.2 • Public • Published

x-module

x-module is a light weight library for JavaScript modularization programming. You could use it in both browser and node.js/io.js.

Build Status

Start

In browser:

First step, add <script> tag for x-module.js in your web page, such as index.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <!--content-->
    <script src="path/for/x-module/x-module.js"></script> 
    <script src="module-a.js"></script> 
    <script src="module-b.js"></script> 
    <script src="main.js"></script> 
</body>
</html>

And then add some modules:

module-a.js:

xModule.def('moduleA', function() {
    return 'A';
});

module-b.js:

xModule.def('moduleB', ['moduleA'], function(A) {
    return function(name) {
        return 'Hello, ' + name + "! I'm moduleB. The moduleA is " + A;
    };
});

Run the module:

main.js:

xModule.run('moduleB', function(B) {
    B('world'); // Hello, world! I'm moduleB. The moduleA is A
});

In node.js or io.js:

Define modules in a dir:

.
├── mods
│   ├── mod-a.js
│   └── sub
│       ├── mod-b.js
│       └── mod-c.js
└── main.js

mod-a.js:

xModule.def('modA', ['modB', 'modC'], function(B, C) {
  return B + C;
});

mod-b.js:

xModule.def('modB', function() {
  return 'B';
});

mod-c.js:

xModule.def('modC', function() {
  return 'C';
});

Load modules and run:

main.js:

var xModule = require('x-module');
var path = require('path');
xModule.load(path.join(__dirname, 'mods'));
xModule.run('modA', function(A) {
    console.log(A); // 'BC'
});

Why x-module?

  • easy: Just concat and uglify js files in browser, or require files in node.js/io.js. You don't need to care about the order or the path of files.
  • consistency: The browser client and server side in the same way to define the module.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i x-module

Weekly Downloads

0

Version

0.0.2

License

MIT

Last publish

Collaborators

  • imumu