{
  "name": "clean-css",
  "version": "2.2.23",
  "author": {
    "name": "Jakub Pawlowicz",
    "email": "jakub@goalsmashers.com",
    "url": "http://twitter.com/GoalSmashers"
  },
  "description": "A well-tested CSS minifier",
  "license": "MIT",
  "keywords": [
    "css",
    "minifier"
  ],
  "homepage": "https://github.com/GoalSmashers/clean-css",
  "repository": {
    "type": "git",
    "url": "https://github.com/GoalSmashers/clean-css.git"
  },
  "bugs": {
    "url": "https://github.com/GoalSmashers/clean-css/issues"
  },
  "bin": {
    "cleancss": "./bin/cleancss"
  },
  "main": "index.js",
  "files": [
    "bin",
    "lib",
    "History.md",
    "index.js",
    "LICENSE"
  ],
  "scripts": {
    "browserify": "browserify --standalone CleanCSS index.js | uglifyjs --compress --mangle -o cleancss-browser.js",
    "bench": "node ./test/bench.js",
    "check": "jshint ./bin/cleancss .",
    "prepublish": "jshint .",
    "test": "vows"
  },
  "dependencies": {
    "commander": "2.2.x"
  },
  "devDependencies": {
    "browserify": "4.x",
    "jshint": "2.5.x",
    "nock": "0.28.x",
    "uglify-js": "2.4.x",
    "vows": "0.7.x"
  },
  "engines": {
    "node": ">=0.8.0"
  },
  "readme": "[![NPM version](https://badge.fury.io/js/clean-css.svg)](https://badge.fury.io/js/clean-css)\n[![Build Status](https://secure.travis-ci.org/GoalSmashers/clean-css.svg)](https://travis-ci.org/GoalSmashers/clean-css)\n[![Dependency Status](https://david-dm.org/GoalSmashers/clean-css.svg?theme=shields.io)](https://david-dm.org/GoalSmashers/clean-css)\n[![devDependency Status](https://david-dm.org/GoalSmashers/clean-css/dev-status.svg?theme=shields.io)](https://david-dm.org/GoalSmashers/clean-css#info=devDependencies)\n\n## What is clean-css?\n\nClean-css is a fast and efficient [Node.js](http://nodejs.org/) library for minifying CSS files.\n\nAccording to [tests](http://goalsmashers.github.io/css-minification-benchmark/) it is one of the best available.\n\n\n## Usage\n\n### What are the requirements?\n\n```\nNode.js 0.8.0+ (tested on CentOS, Ubuntu, OS X 10.6+, and Windows 7+)\n```\n\n### How to install clean-css?\n\n```\nnpm install clean-css\n```\n\n### How to upgrade clean-css from 1.x to 2.x?\n\n#### Command-line interface (CLI)\n\n```\nnpm update clean-css\n```\n\nor point `package.json` to version 2.x. That's it!\n\n#### Node.js module\n\nUpdate `clean-css` as for CLI above.\nThen change your JavaScript code from:\n\n```js\nvar minimized = CleanCSS.process(source, options);\n```\n\ninto\n\n```js\nvar minimized = new CleanCSS(options).minify(source);\n```\n\nAnd you are done.\n\n### How to use clean-css CLI?\n\nClean-css accepts the following command line arguments (please make sure\nyou use `<source-file>` as the very last argument to avoid potential issues):\n\n```\ncleancss [options] source-file, [source-file, ...]\n\n-h, --help                      Output usage information\n-v, --version                   Output the version number\n-b, --keep-line-breaks          Keep line breaks\n--s0                            Remove all special comments, i.e. /*! comment */\n--s1                            Remove all special comments but the first one\n-r, --root [root-path]          A root path to which resolve absolute @import rules\n                                and rebase relative URLs\n-o, --output [output-file]      Use [output-file] as output instead of STDOUT\n-s, --skip-import               Disable @import processing\n--skip-rebase                   Disable URLs rebasing\n--skip-advanced                 Disable advanced optimizations - selector & property merging,\n                                reduction, etc.\n--skip-aggressive-merging       Disable properties merging based on their order\n--rounding-precision [value]    Rounding precision, defaults to 2\n-c, --compatibility [ie7|ie8]   Force compatibility mode\n-d, --debug                     Shows debug information (minification time & compression efficiency)\n```\n\n#### Examples:\n\nTo minify a **public.css** file into **public-min.css** do:\n\n```\ncleancss -o public-min.css public.css\n```\n\nTo minify the same **public.css** into the standard output skip the `-o` parameter:\n\n```\ncleancss public.css\n```\n\nMore likely you would like to concatenate a couple of files.\nIf you are on a Unix-like system:\n\n```bash\ncat one.css two.css three.css | cleancss -o merged-and-minified.css\n```\n\nOn Windows:\n\n```bat\ntype one.css two.css three.css | cleancss -o merged-and-minified.css\n```\n\nOr even gzip the result at once:\n\n```bash\ncat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz\n```\n\n### How to use clean-css programmatically?\n\n```js\nvar CleanCSS = require('clean-css');\nvar source = 'a{font-weight:bold;}';\nvar minimized = new CleanCSS().minify(source);\n```\n\nCleanCSS constructor accepts a hash as a parameter, i.e.,\n`new CleanCSS(options).minify(source)` with the following options available:\n\n* `keepSpecialComments` - `*` for keeping all (default), `1` for keeping first one only, `0` for removing all\n* `keepBreaks` - whether to keep line breaks (default is false)\n* `benchmark` - turns on benchmarking mode measuring time spent on cleaning up\n  (run `npm run bench` to see example)\n* `root` - path to resolve absolute `@import` rules and rebase relative URLs\n* `relativeTo` - path with which to resolve relative `@import` rules and URLs\n* `processImport` - whether to process `@import` rules\n* `noRebase` - whether to skip URLs rebasing\n* `noAdvanced` - set to true to disable advanced optimizations - selector & property merging, reduction, etc.\n* `compatibility` - Force compatibility mode to `ie7` or `ie8`. Defaults to not set.\n* `debug` - set to true to get minification statistics under `stats` property (see `test/custom-test.js` for examples)\n\n### How to use clean-css with build tools?\n\n* [Broccoli](https://github.com/broccolijs/broccoli#broccoli) : [broccoli-uncss](https://github.com/sindresorhus/broccoli-uncss)\n* [Brunch](http://brunch.io/) : [uncss-brunch](https://github.com/jakubburkiewicz/uncss-brunch)\n* [Grunt](http://gruntjs.com) : [grunt-contrib-cssmin](https://github.com/gruntjs/grunt-contrib-cssmin)\n* [Gulp](http://gulpjs.com/) : [https://github.com/ben-eb/gulp-uncss](https://github.com/ben-eb/gulp-uncss)\n\nFor a tutorial how to use Grunt, Gulp, Broccoli or Brunch with clean-css, read Addy Osmani's [\"Spring cleaning unused CSS\"](http://addyosmani.com/blog/removing-unused-css/).\n\n### What are the clean-css' dev commands?\n\nFirst clone the source, then run:\n\n* `npm run bench` for clean-css benchmarks (see [test/bench.js](https://github.com/GoalSmashers/clean-css/blob/master/test/bench.js) for details)\n* `npm run check` to check JS sources with [JSHint](https://github.com/jshint/jshint/)\n* `npm test` for the test suite\n\n## How to contribute to clean-css?\n\n1. Fork it.\n2. Add test(s) veryfying the problem.\n3. Fix the problem.\n4. Make sure all tests still pass (`npm test`).\n5. Make sure your code doesn't break style rules (`npm run check`) and follow all [other ones](https://github.com/GoalSmashers/clean-css/wiki/Style-Guide) too.\n6. Send a PR.\n\nIf you wonder where to add tests, go for:\n\n* `test/unit-test.js` if it's a simple scenario\n* `test/data/...` if it's a complex scenario (just add two files, input and expected output)\n* `test/binary-test.js` if it's related to `bin/cleancss` binary\n* `test/module-test.js` if it's related to importing `clean-css` as a module\n* `test/protocol-imports-test.js` if it fixes anything related to protocol `@import`s\n\n## Tips & Tricks\n\n### How to preserve a comment block?\n\nUse the `/*!` notation instead of the standard one `/*`:\n\n```css\n/*!\n  Important comments included in minified output.\n*/\n```\n\n### How to rebase relative image URLs\n\nClean-css will handle it automatically for you (since version 1.1) in the following cases:\n\n* When using the CLI:\n  1. Use an output path via `-o`/`--output` to rebase URLs as relative to the output file.\n  2. Use a root path via `-r`/`--root` to rebase URLs as absolute from the given root path.\n  3. If you specify both then `-r`/`--root` takes precendence.\n* When using clean-css as a library:\n  1. Use a combination of `relativeTo` and `target` options for relative rebase (same as 1 in CLI).\n  2. Use a combination of `relativeTo` and `root` options for absolute rebase (same as 2 in CLI).\n  3. `root` takes precendence over `target` as in CLI.\n\n## Acknowledgments (sorted alphabetically)\n\n* Anthony Barre ([@abarre](https://github.com/abarre)) for improvements to\n  `@import` processing, namely introducing the `--skip-import` /\n  `processImport` options.\n* Simon Altschuler ([@altschuler](https://github.com/altschuler)) for fixing\n  `@import` processing inside comments.\n* Isaac ([@facelessuser](https://github.com/facelessuser)) for pointing out\n  a flaw in clean-css' stateless mode.\n* Jan Michael Alonzo ([@jmalonzo](https://github.com/jmalonzo)) for a patch\n  removing node.js' old `sys` package.\n* Timur Kristóf ([@Venemo](https://github.com/Venemo)) for an outstanding\n  contribution of advanced property optimizer for 2.2 release.\n* Vincent Voyer ([@vvo](https://github.com/vvo)) for a patch with better\n  empty element regex and for inspiring us to do many performance improvements\n  in 0.4 release.\n* [@XhmikosR](https://github.com/XhmikosR) for suggesting new features\n  (option to remove special comments and strip out URLs quotation) and\n  pointing out numerous improvements (JSHint, media queries).\n\n## License\n\nClean-css is released under the [MIT License](https://github.com/GoalSmashers/clean-css/blob/master/LICENSE).\n",
  "readmeFilename": "README.md",
  "_id": "clean-css@2.2.23",
  "_shasum": "0590b5478b516c4903edc2d89bd3fdbdd286328c",
  "_from": "clean-css@2.2.23",
  "_resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.2.23.tgz"
}
