node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


node-jsmin-sourcemap Build status

JSMin with sourcemaps!

Also available as a grunt plugin!


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


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


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
 * @param {String} params.src  File path to original JavaScript (seen when an error is thrown)
 * @param {String} params.code JavaScript to minify
 * @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


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'
// Minified code is availabe at 
// indexMinObj.code; 
// Sourcemap is availabe at 
// indexMinObj.sourcemap; 


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.


Support this project and others by twolfson via gittip.

Support via Gittip


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.