2014-10-09 12 views
5

Nel mio file Grunt sto usando l'attività cssmin (grunt-contrib-cssmin). Qualcosa di simile:Evita l'attività cssmin di Grunt per rimuovere le voci duplicate

cssmin: { 
    css : { 
     src: "dist/styles.css", 
     dest: "dist/styles.min.css" 
    } 
} 

Il problema è: styles.css viene generato con un compito concat che concatena un sacco di file .css. In alcuni file ho lo stesso selettore css (esempio: .panel a) Solo il primo selettore viene mantenuto nel task cssmin, tutti gli altri vengono rimossi. Immagino sia un comportamento predefinito del compito. C'è un modo per mantenere i selettori duplicati?

+2

Ma non è che il punto di cssmin? Perché vuoi tenerli? – jgillich

+0

@jgillich perché l'attività concatena i css di alcuni fornitori e devo sovrascrivere alcune regole/selettori. –

+0

Ma questi non dovrebbero sovrascrivere le regole esistenti quando vengono unite in un unico selettore? Immagino che l'ordine in cui i file vengono elaborati potrebbe essere importante; per rispondere alla tua domanda tuttavia non sembra esserci alcun modo per disattivare questo comportamento. – jgillich

risposta

0

Grunt cssmin ha una dipendenza dal modulo node.js clean-css. Raccomanderei di utilizzare l'API clean-css all'interno di Grunt con le opzioni disponibili https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api.

Uno dei parametri disponibili è;

advanced - set to false to disable advanced optimizations - selector & property merging, reduction, etc.

si gioca con questa opzione http://refresh-sf.com/. Se vai nella scheda 'clean-css' sotto la textarea, puoi abilitare/disabilitare advanced per vederlo funzionare.

Edit: Rilasciato questo a grugnito-contrib-cssmin repo come un problema https://github.com/gruntjs/grunt-contrib-cssmin/issues/263