abridge

Streaming minifier for JS and CSS

Abridge

npm install abridge

Abridge is a wild fork of node-minify module. It is not a drop-in replacement, but improves upon the original code in various ways.

  • Dropped support for Google Closure
  • Do not create temporary files, pipe to chld process's stdin instead
  • Use streams wherever possible
  • Supply minified data to callbacks
  • Major API improvements

Usage

The old API style is mostly preserved.

var Minifier = require('abridge').Minifier;
 
new Minifier({
    type: 'yui',
    fileIn: 'public/js/base.js',
    fileOut: 'public/js/base-min-gcc.js',
    callbackfunction(err){
        console.log(err);
    }
});

But now we can just call the minify function without creating an instance of Minify:

var abridge = require('abridge');
var options = {
    type: 'yui',
    fileIn: 'public/js/base.js',
    fileOut: 'public/js/base-min-gcc.js',
    callbackfunction(err){
        console.log(err);
    }
};
 
abridge.minify(options);

We can also supply a callback as a second argument, as per tradition:

var options = {
    type: 'yui',
    fileIn: 'public/js/base.js',
    fileOut: 'public/js/base-min-gcc.js'
};
 
abridge.minify(options, function(err) {
    console.log(err);
});

And our callback is given the minified data:

abridge.minify(options, function(errdata) {
    console.log(err, data);
});

Also fileOut and type are optional. If CSS is detected, Abridge will default to YUICompressor, as uglifyjs compresses only JavaScript. However, if minifying JavaScript, Abridge will use Uglify-js instead, as it is more efficient:

var options = {
    fileIn: 'public/js/base.js'
};
 
abridge.minify(options, console.log);

In fact you no longer need an options object:

var fileIn = ['public/js/base.js', 'public/js/somn.js'];
var fileOut = 'public/js/common.js';
abridge.minify(fileIn, fileOut, console.log);

In the simplest case, we have:

abridge.minify('public/js/base.js', function(errdata) {
 
});

To use YUICompressor (default for CSS files) you must have Java installed.