ender-minify

Interface to UglifyJS Closure Compiler and YUICompressor

npm install ender-minify
23 downloads in the last week
73 downloads in the last month

Ender Minify Build Status

Bundled minifier utilities for Node, designed primarily for use with the Ender CLI.

About Ender

For more information check out http://ender.jit.su

API

enderMinify() (UglifyJS)

var fs = require('fs')
var em = require('ender-minify')
var options = {} // no options for UglifyJS at the moment

fs.readFile('source.js', 'utf-8', function (err, source) {
  if (err) throw err

  em('uglify', source, options, function (err, minifiedSource) {
    if (err) throw err

    fs.writeFile('source.min.js', minifiedSource, 'utf-8')
  })
})

enderMinify() (Closure Compiler)

var fs = require('fs')
var em = require('ender-minify')
var options = {
  level: 'simple',                 // can be 'whitespace', 'simple' or 'advanced'
  externs: [ 'foo.js', 'bar.js' ]  // passed as --externs
}

fs.readFile('source.js', 'utf-8', function (err, source) {
  if (err) throw err

  em('closure', source, options, function (err, minifiedSource) {
    if (err) throw err

    fs.writeFile('source.min.js', minifiedSource, 'utf-8')
  })
})

YUICompressor coming soon...


enderMinify.minifiers

A list of minifiers available as an array.


enderMinify.closureLevels

An object with mappings of the Closure Compiler compression levels, from nice-key to verbose-Closure-key.

i.e.:

{
    whitespace : 'WHITESPACE_ONLY'
  , simple     : 'SIMPLE_OPTIMIZATIONS'
  , advanced   : 'ADVANCED_OPTIMIZATIONS'
}

enderMinify.closureJar

The absolute path name to the closure.jar file used to run Closure Compiler within this package. Useful if you wanted to call it directly.


Contributing

Contributions are more than welcome! Just fork and submit a GitHub pull request! If you have changes that need to be synchronized across the various Ender CLI repositories then please make that clear in your pull requests.

Tests

Ender Minify uses Buster for unit testing. You'll get it (and a bazillion unnecessary dependencies) when you npm install in your cloned local repository. Simply run npm test to run the test suite.

Licence

Ender Minify is Copyright (c) 2012 @rvagg, @ded, @fat and other contributors. It is licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.

npm loves you