Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

JSMin with sourcemaps!

README.md

node-jsmin-sourcemap Build status

JSMin with sourcemaps!

Also available as a grunt plugin!

Synopsis

JSMin is a JavaScript minifier that removes whitespace and comments.

Source maps enables developers to view and interact with minified JavaScript as if it were unminified (providing useful line errors and easier debugging).

When you combine both of these, you get a node module that is your new best debugging friend.

Getting Started

Install the module with: npm install jsmin-sourcemap

Demos

The folders in demo are hosted on Plunker for your testing and enjoyment.

Documentation

JSMin is a standalone function which takes the following format of paramters

/**
 * JSMin + source-map
 * @param {Object} params Parameters to minify and generate sourcemap with
 * @param {String} [params.dest="undefined.js"] Destination for your JavaScript (used inside of sourcemap map)
 * @param {String} [params.srcRoot] Optional root for all relative URLs
 *
 * SINGLE FILE FORMAT
 * @param {String} params.src  File path to original JavaScript (seen when an error is thrown)
 * @param {String} params.code JavaScript to minify
 *
 * MULTI FILE FORMAT
 * @param {Object[]} params.input Array of objects) to minify
 * @param {String} params.input[n].src File path to original JavaScript (seen when an error is thrown)
 * @param {String} params.input[n].code JavaScript to minify
 *
 * @return {Object} retObj
 * @return {String} retObj.code Minified JavaScript
 * @return {Object} retObj.sourcemap Sourcemap of input to minified JavaScript
 */

Examples

Single file

// Load in jsmin and jQuery
var jsmin = require('node-jsmin-sourcemap'),
    jquerySrc = fs.readFileSync('jquery.js', 'utf8');

// Process the jquery source via jsmin
var jqueryMinObj = jsmin({'code':jQuerySrc,'src':'jquery.js','dest':'jquery.min.js'});

// Minified code is available at
// jqueryMinObj.code;

// Sourcemap is available at
// jqueryMinObj.sourcemap;

Multiple files

// Load in jsmin, jQuery, and underscore
var jsmin = require('node-jsmin-sourcemap'),
    jquerySrc = fs.readFileSync('jquery.js', 'utf8'),
    underscoreSrc = fs.readFileSync('underscore.js', 'utf8');

// Process the jquery amd underscore source via jsmin
var indexMinObj = jsmin({
      'input': [{
        'code': jQuerySrc,
        'src': 'jquery.js'
      }, {
        'code': underscoreSrc,
        'src': 'underscore.js'
      }],
      'dest':'index.min.js'
    });

// Minified code is availabe at
// indexMinObj.code;

// Sourcemap is availabe at
// indexMinObj.sourcemap;

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test.

Donating

Support this project and others by twolfson via gittip.

Support via Gittip

Unlicense

As of Dec 04 2013, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.

Previous to this, it was licensed under the MIT license.

Something went wrong with that request. Please try again.