Chapter 17. Minification and Compression

Once you have your built files validated, concatenated, and baked, it’s time to make those files as small as possible. This step is accomplished with two processes: minification and compression. Minification is the process of eliminating unnecessary white space, removing comments, and performing some processing on the files to make them as small as possible. Compression uses a specific compression method, such as gzip, to shrink the file even further. The difference between a minified file and a compressed file is that minified files are still just plain text and can be edited and loaded as usual (albeit with a bit of trouble, because all formatting is removed), whereas compressed files are unreadable and must be decompressed to be usable in a web page. Today’s browsers automatically decompress any compressed files they receive with a Content-Encoding: gzip header in the response.

Minification

Minifying a JavaScript file isn’t very complicated, but mistakes or invalid syntax can result if you use an unsafe process. For this reason, it’s best to use a minifier that actually parses the JavaScript before making changes. Parsers know what valid syntax is and can more easily create valid syntax. The three most popular parsing minifiers are:

YUI Compressor

Often credited with popularizing parser-based minifiers instead of the regular expression-based minifiers. YUI Compressor was first written by Julien Lecomte (and is now maintained by the ...

Get Maintainable JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.