Concatter
Helper utility to build single-file JavaScript applications.
It uses NodeJS-styled require
function calls to resolve file concatenation order.
It is quite experimental at the moment and does not support cyclic dependencies.
Usage
$ concatter --help
Usage: concatter [options]
Options:
-h, --help output usage information
-b, --base <path> base path for modules
-i, --indent <indent> indent for module wrapping
-o, --output <path> name of the output file
-V, --version output the version number
Example
Lets say we have project with the following structure:
example/
|-- module1
| `-- a.js
|-- module2
| `-- b.js
`-- module3
`-- c.js
and a.js
, b.js
, c.js
are following:
a.js:
var b = require('../module2/b');
exports.a = function() {
console.log(b.b());
};
b.js:
var c = require('../module3/c');
exports.c = function() {
console.log(c.c());
};
c.js:
exports.c = function() {
console.log('c');
};
then the project is compiled to a single file using the command concatter --base example
which results in the following output:
module1 = {};
module1.a = {};
module2 = {};
module2.b = {};
module3 = {};
module3.c = {};
module3.c = (function(exports) {
exports.c = function() {
console.log('c');
};
return exports;
})({});
module2.b = (function(exports) {
var c = module3.c;
exports.c = function() {
console.log(c.c());
};
return exports;
})({});
module1.a = (function(exports) {
var b = module2.b;
exports.a = function() {
console.log(b.b());
};
return exports;
})({});