Unminify / Decompress JavaScript

Personally I can't think of a reason to ever unminify code^:

  • If you're using a compiled js file (a-la google closure) and want more readable code to debug, use source maps available for well-supported libraries (speaking of jQuery, if it is served from a google CDN it already maps to the correct source)

  • If you're using a whitespace-only minified js file and want more readable code to debug, you could just toggle pretty print in-browser. This seems to best fit your question.

  • If you're using either of the above and want to modify the source code for a third-party js file, don't. Any future release will cancel out your change - instead consider one of the many patterns to extend a framework (or, perhaps, do some duck punching depending on the exact scenario.)

The other answers seem to cover the "unminification" process (maxification?) well, but it's worth making sure it's a necessary step first.

^ - Except when version control falls over, there are no backups and the only version of the file left is a minified copy in browser cache. Don't ask.


Its just a one way transformation .... sorry in normal cases you will not get something understandable back from minified JavaScript !

Make just a quick look at JQuery source for a second:

(function( window, undefined ) {

// Can't do this because several apps including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if
// you try to trace through "use strict" call chains. (#13335)
// Support: Firefox 18+
//"use strict";
var
    // The deferred used on DOM ready
    readyList,

    // A central reference to the root jQuery(document)
    rootjQuery,

    // Support: IE<10
    // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
    core_strundefined = typeof undefined,

    // Use the correct document accordingly with window argument (sandbox)
    location = window.location,
    document = window.document,
    docElem = document.documentElement,

    // Map over jQuery in case of overwrite
    _jQuery = window.jQuery,

    // Map over the $ in case of overwrite
    _$ = window.$,

    // [[Class]] -> type pairs
    class2type = {},

    // List of deleted data cache ids, so we can reuse them
    core_deletedIds = [],

    core_version = "1.10.2",
------

And now at the minify source:

(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,
l=e.jQuery,u=e.$,c={},p=[],f="1.10.2", ....

I think now you see it =>

window       => e
undefined    => t
readyList    => n
rootjQuery   => r
core_strundefined  => i
location     => o
document     => a 

So its mapped somehow to make it more shorter look here to minify something People normally use this so there is no way back

you can just format it look here


The thing is that you cannot really "unminify" your code since some data was already lost - e.g. variable names. You can reformat it to more readable form though.

  1. According to this question, since VisualStudio 2012 you can just use Ctrl+E, D keyboard shortcut
  2. If the above is not right, there is this extension for VS 2010: http://visualstudiogallery.msdn.microsoft.com/41a0cc2f-eefd-4342-9fa9-3626855ca22a but I am not sure if it works with VS 2013
  3. There is an extension to VisualStudio called ReSharper which can reformat javascript in a few different manners.
  4. Also there are online formatters already mentioned in other answers (if your code is confidential, I would advise some paranoia manifested by downloading sources and using them locally).
  5. Also you may always try to find unminified version of desired library on the interwebs
  6. Also, there is the WebStorm IDE from JetBrains that is able to reformat JS - you may download a trial for the sole purpose of reformatting your minified scripts :)
  7. If that's just to make debugging easier, you may want to use source maps

Also, here is a bunch of related questions:

How to automatically indent source code? <-- this is for VS2010, but it looks promising, maybe it will help you if it supports JavaScript (and it does since VS2012 according to MS support):

Ctrl+E, D - Format whole doc
Ctrl+K, Ctrl+F - Format selection

reindent(reformat) minimized jquery/javascript file in visual studio

Visual Studio 2010 can't format complex JavaScript documents

Visual Studio code formatter

how to make visual studio javascript formatting work?

I am not sure if they figured out a working way to reformat JS, but I've seen a few answers which might be helpful - I am just pasting this in here just FYI.

Added 03.06.2014:

http://www.jsnice.org/

This tool could be useful too, it even tries to infer minified names. As stated on their website:

We will rename variables and parameters to names that we learn from thousands of open source projects.