Clean-css is a node.js library for minifying CSS files. It does the same job as YUI Compressor's CSS minifier but much faster thanks to many speed optimizations and the node.js' V8 engine.
node 0.6.0+ on *nix (fully tested on OS X 10.6+ and CentOS)
node 0.8.0+ on Windows
npm install clean-css
To minify a public.css file into public-min.css do:
cleancss -o public-min.css public.css
To minify the same public.css into the standard output skip the -o parameter:
cleancss public.css
More likely you would like to concatenate couple files like this (if you are on *nix system):
cat one.css two.css three.css | cleancss -o merged-and-minified.css
Or even gzip the result at once:
cat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz
var cleanCSS = require('clean-css');
var source = "a{font-weight:bold;}";
var minimized = cleanCSS.process(source);
Process method accepts a hash as a second parameter (i.e. cleanCSS.process(source, options)
), with the following options available:
keepSpecialComments
-*
for keeping all,1
for keeping first one,0
for removing all (default is*
)keepBreaks
- whether to keep line breaks (default is false)removeEmpty
- whether to remove empty elements (default is false)debug
- turns on debug mode (measuring time spent on cleaning up - runmake bench
to see example)
Use /*!
notation instead of standard one (i.e. /*
):
/*!
Important comments included in minified output.
*/
First clone the source, then run:
npm test
on *nix systems. If you are under Windows then run:
./test.bat
- Vincent Voyer (@vvo) for a patch with better empty element regex and for inspiring us to do many performance improvements in 0.4 release.
- Isaac (@facelessuser) for pointing out a flaw in clean-css' stateless mode.
- Jan Michael Alonzo (@jmalonzo) for a patch removing node's old 'sys' package.
- @XhmikosR for suggesting new features (option to remove special comments and strip out url's parentheses) and pointing out numerous improvement (JSHint, media queries).
Clean-css is released under the MIT License.