Skip to content
forked from srod/node-minify

Minifier for CSS / JavaScript based on srod/node-minify

License

Notifications You must be signed in to change notification settings

jfalameda/Abridge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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',
    callback: function(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',
    callback: function(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(err, data) {
    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(err, data) {

});

Note

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

About

Minifier for CSS / JavaScript based on srod/node-minify

Resources

License

Stars

Watchers

Forks

Packages

No packages published