Minifying strips out all comments, superfluous white space and shortens variable names. It thus reduces download time for your JavaScript files as they are (usually) a lot smaller in filesize. So, yes it does improve performance. The obfuscation shouldn't adversely affect performance.
To minify JavaScript, try UglifyJS. The Closure Compiler is also very effective. You can create a build process that uses these tools to minify and rename the development files and save them to a production directory.
Use your JS URL to compress. Click on the URL button, Enter URL and Submit. Users can also minify JS File by uploading the file. Minify JS Online works well on Windows, MAC, Linux, Chrome, Firefox, Edge, and Safari.
I recently released UglifyJS, a JavaScript compressor which is written in JavaScript (runs on the NodeJS Node.js platform, but it can be easily modified to run on any JavaScript engine, since it doesn't need any Node.js
internals). It's a lot faster than both YUI Compressor and Google Closure, it compresses better than YUI on all scripts I tested it on, and it's safer than Closure (knows to deal with "eval" or "with").
Other than whitespace removal, UglifyJS also does the following:
foo["bar"]
into foo.bar
where possiblePS: Oh, it can "beautify" as well. ;-)
Revisiting this question a few years later, UglifyJS, seems to be the best option as of now.
As stated below, it runs on the NodeJS platform, but can be easily modified to run on any JavaScript engine.
--- Old answer below---
Google released Closure Compiler which seems to be generating the smallest files so far as seen here and here
Previous to that the various options were as follow
Basically Packer does a better job at initial compression , but if you are going to gzip the files before sending on the wire (which you should be doing) YUI Compressor gets the smallest final size.
The tests were done on jQuery code btw.
@daniel james mentions in the comment compressorrater which shows Packer leading the chart in best compression, so I guess ymmv
YUI Compressor is the way to go. It has a great compression rate, is well tested and is in use among many top sites, and, well, personally recommended by me.
I've used it for my projects without a single JavaScript error or hiccup. And it has nice documentation.
I've never used its CSS compression capabilities, but they exist as well. CSS compression works just as well.
Note: Although Dean Edwards's /packer/ achieves a better compression rate than YUI Compressor, I ran into a few JavaScript errors when using it.
I use ShrinkSafe from the Dojo project - it is exceptional because it actually uses a JavaScript interpreter (Rhino) to deal with finding symbols in the code and understanding their scope, etc. which helps to ensure that the code will work when it comes out the other end, as opposed to a lot of compression tools which use regex to do the same (which is not as reliable).
I actually have an MSBuild task in a Web Deployment Project in my current Visual Studio solution that runs a script which in turn runs all of the solution's JS files through ShrinkSafe before we deploy and it works quite well.
EDIT: By the way, "best" is open to debate, since the criteria for "best" will vary depending on the needs of the project. Personally, I think ShrinkSafe is a good balance; for some people that think smallest size == best, it will be insufficient.
EDIT: It is worth noting that the YUI compressor also uses Rhino.
Try JSMin, got C#, Java, C and other ports and readily available too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With