uncss npm install -g uncss promete mucho pero no lo puedo usar por ahora en producción.

Resumen

No usable en producción salvo en casos concretos.

1. Principalmente por este asunto:

Github:UnCSS ignoring complex selectors #74

Escenario

El documento original contiene:

<div class="menu"></div>

Cuando alguien hace lo necesario, el menu se abre: añadiéndole la clase "open".

$('menu-open-btn').on 'click', ()->
    $('.menu').addClass 'open'

Obtenemos:

<div class="menu open"></div>

El css sería:

.menu {
  display: none;
}

Fail:

// Houston, We've Had a Problem
// UNCSS No lo pilla: >_<
.menu.open {
  display: block;
}

Este escenario es representativo de muchos otros. Lo que hace uncss poco usable.

Solución

Si no excedes el uso de selectores complejos, puedes pasar a uncss el parametro ignore con los selectores que conozcas que quieras preservar:

uncss:
  dist:
    options:
      ignore: [
        '.menu.open'
      ]
    files:
      './_site/build/style.un.css': ['./_site/{,*/}*.html', './_site/theme/{,*/}*.html']

2. Manejo de errores, es fácil que acabes así:

Fatal error: missing '{' near line ...

El manejo de errores no es más fino de la escena, y peta. Si usas grunt, te petará el proceso.