# grunt-yui-compressor

> A grunt plugin for compressing JavaScript and CSS files using YUI Compressor.

Latest version **0.4.0** (published 2015-03-09) · 0 weekly downloads

## Install

```sh
npm install grunt-yui-compressor
pnpm add grunt-yui-compressor
yarn add grunt-yui-compressor
bun add grunt-yui-compressor
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.0 |
| Published | 2015-03-09 |
| First published | 2012-06-03 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | * |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 59 |
| Author | Mathias Bynens |
| Maintainers | mathias |
| Keywords | gruntplugin |

## Links

- npm: https://www.npmjs.com/package/grunt-yui-compressor
- Repository: https://github.com/mathiasbynens/grunt-yui-compressor
- Issues: https://github.com/mathiasbynens/grunt-yui-compressor/issues
- npm.io page: https://npm.io/package/grunt-yui-compressor

## Dependencies (2)

- [maxmin](https://npm.io/package/maxmin.md) ^1.0.1
- [node-minify](https://npm.io/package/node-minify.md) ^1.0.1

## Recent versions

- 0.4.0 (latest) — 2015-03-09
- 0.3.3 — 2014-03-06
- 0.3.2 — 2014-03-06
- 0.3.1 — 2014-03-06
- 0.3.0 — 2013-04-23
- 0.2.2 — 2013-03-31
- 0.2.1 — 2013-02-20
- 0.2.0 — 2013-02-06
- 0.1.1 — 2012-06-03
- 0.1.0 — 2012-06-03

## README

# grunt-yui-compressor [![Dependency status](https://gemnasium.com/mathiasbynens/grunt-yui-compressor.svg)](https://gemnasium.com/mathiasbynens/grunt-yui-compressor)

A [grunt](https://github.com/cowboy/grunt) plugin for compressing JavaScript and CSS files using YUI Compressor.

## Getting Started

Install the module:

```bash
npm install grunt-yui-compressor
```

Then add this line to your project’s `grunt.js` gruntfile:

```js
grunt.loadNpmTasks('grunt-yui-compressor');
```

Now you can specify CSS/JS files to minify. Here’s a basic example:

```js
'min': {
    'dist': {
        'src': ['src/foo.js', 'src/bar.js'],
        'dest': 'build/foobar.min.js'
    }
},
'cssmin': {
    'dist': {
        'src': ['css/foo.css', 'css/bar.css'],
        'dest': 'build/foobar.min.css'
    }
}
```

Both `min` and `cssmin` use the same API as [the built-in `min` task](https://github.com/gruntjs/grunt/blob/master/docs/task_min.md#usage-examples).

## Documentation

This plugin does two things:

* It overrides grunt’s built-in `min` task, and makes it use YUI Compressor instead of UglifyJS.
* It provides a `cssmin` task that uses YUI Compressor to compress CSS files.

Both these tasks are [multi tasks](https://github.com/gruntjs/grunt/blob/master/docs/types_of_tasks.md#multi-tasks), meaning that each of them will implicitly iterate over all of its targets if no target is specified.

## FAQ

### Why not just use grunt’s built-in `min` task to minify JavaScript?

Grunt’s built-in `min` task relies on UglifyJS. I love UglifyJS, but it has a few annoying issues and shortcomings:

* It strips license comments of the form `/*! foo */`, only preserving the first comment in the concatenated file. This may cause you to violate licenses of open-source libraries that you’re using in your projects.
* It doesn’t [escape](https://mathiasbynens.be/notes/javascript-escapes) non-printable ASCII characters in the output, potentially leading to hard-to-debug issues. Try minifying `'\x0b'`, for example.
* There’s no way to make UglifyJS not munge a variable name.

YUI Compressor doesn’t have these issues.

## Release History

* v0.1.1: Create the destination path automatically if needed
* v0.1.0: Initial release

## Contributing

Feel free to fork if you see possible improvements!

In lieu of a formal style guide, take care to maintain the existing coding style. Please lint your code (by simply running `grunt`) before submitting a patch.

## Author

| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
|---|
| [Mathias Bynens](https://mathiasbynens.be/) |

## License

This project is dual licensed under the [MIT](https://mths.be/mit) and [GPL](https://mths.be/gpl) licenses.

---
_Source: https://npm.io/package/grunt-yui-compressor · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
