According to Yahoo!'s Exceptional Performance Team, 40% to 60% of Yahoo!'s users have an empty cache experience and about 20% of all page views are done with an empty cache (see this article by Tenni Theurer on the YUIBlog for more information on browser cache usage). This fact outlines the importance of keeping web pages as lightweight as possible. Improving the engineering design of a page or a web application usually yields the biggest savings and that should always be a primary strategy. With the right design in place, there are many secondary strategies for improving performance such as minification of the code, HTTP compression, using CSS sprites, etc.
The YUI Compressor is written in Java (requires Java >= 1.4)
omitting as many white space characters as possible, and replacing all local symbols by a 1 (or 2, or 3) letter symbol
wherever such a substitution is appropriate (in the face of
evil features such as
with, the YUI Compressor takes a defensive approach by not obfuscating any of the scopes containing the evil
statement) The CSS compression algorithm uses a set of finely tuned regular expressions to compress the source CSS file.
The YUI Compressor is open-source, so don't hesitate to look at the code to understand exactly how it works.
$ java -jar yuicompressor-x.y.z.jar Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] Global Options -h, --help Displays this information --type <js|css> Specifies the type of the input file --charset <charset> Read the input file using <charset> --line-break <column> Insert a line break after the specified column number -v, --verbose Display informational messages and warnings -o <file> Place the output into
Note: If no input file is specified, it defaults to stdin.
The following command line (x.y.z represents the version number):
java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js
will minify the file
myfile.js and output the file
For more information on how to use the YUI Compressor, please refer to the documentation
included in the archive.
The charset parameter isn't always required, but the compressor may throw an error if the file's encoding is incompatible with the system's default encoding. In particular, if your file is encoded in utf-8, you should supply the parameter.
java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js --charset utf-8
-voption. Although not a replacement for JSLint, it will output some helpful hints when it senses that something might be wrong with your code.
The YUI Library and related topics are discussed on the on the YUILibrary.com forums.
Also be sure to check out YUIBlog for updates and articles about the YUI Library written by the library's developers.
The YUI Library's public bug tracking and feature request repositories are located on the YUILibrary.com site. Before filing new feature requests or bug reports, please review our reporting guidelines.
be the first to bookmark this page!
All YUI 2.x users should review the YUI 2.8.2 security bulletin, which discusses a vulnerability present in YUI 2.4.0-2.8.1.