We intend extract the tasks included in Yeoman to make the project more modular and be a good internet citizen. We've already done so with the Compass task.
I've added some tasks that might be fitted for grunt-contrib.
Optimizing images is something most projects need. I think it's important grunt-contrib has a simple and opinionated task for this.
When we created the Yeoman img task I researched the best tools out there. We didn't want to complicate the setup with a lot of different minifiers and ended up with OptiPNG and jpegtran from the libjpeg-turbo package, both working cross OS, actively developed and super fast.
There already exist a grunt plugin for optimizing images, but it's too flexible and I would like something that is super simple to set up and use without having to change a single setting, of course you can if you want.
This task would require dependency on both optipng binary and jpegtran, but I'm going to work around that by creating a couple of wrapper node modules embedding those. This would mean it would be completely transparent for the enduser.
This project is based on PNGCrush. According to the author, it's running faster because all trials are performed in memory. It also includes parts of PNGRewrite code for some images reductions. OptiPNG is used by a lot of optimizers, including onlines services as SmushIt.
libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression on x86, x86-64, and ARM systems. On such systems, libjpeg-turbo is generally 2-4x as fast as the unmodified version of libjpeg, all else being equal.
Not sure if it's useful enough to be included in grunt-contrib, but might be useful. Thoughts?
https://github.com/yeoman/yeoman/blob/master/cli/tasks/html.js https://github.com/kangax/html-minifier
Prior art: https://github.com/jney/grunt-htmlcompressor But requires Java.
Yeomans livereload task is to specialized to be used, but I was just wondering if this is something that could be useful to have in contrib?
Prior art: https://github.com/webxl/grunt-reload
Usemin doesn't seem quite generic enough, but I like the rest. I think we should talk to the author's of the existing tasks to see if they'd be willing to participate in contrib first, though. Are you planning on having a yeoman-* series of tasks Sindre?