2014-10-09 13 views
5

In meiner Gruntfile verwende ich cssmin (grunt-contrib-cssmin) Aufgabe. Etwas wie:Vermeiden Grunt Cssmin Aufgabe doppelte Einträge zu entfernen

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

Das Problem ist: styles.css ist mit einer concat Aufgabe erzeugt, die viele CSS-Dateien verknüpft. In einigen Dateien habe ich den gleichen CSS-Selektor (Beispiel: .panel a) Nur der erste Selektor wird mit der cssmin-Task beibehalten, alle anderen werden entfernt. Ich denke, es ist ein Standardverhalten der Aufgabe. Gibt es eine Möglichkeit, duplizierte Selektoren zu behalten?

+2

Aber ist das nicht der Punkt von cssmin? Warum willst du sie behalten? – jgillich

+0

@jgillich, weil die Aufgabe css einiger Hersteller einkalkuliert und ich einige Regeln/Selektoren überschreiben muss. –

+0

Aber sollten diese nicht die bestehenden Regeln außer Kraft setzen, wenn sie in einem Selektor zusammengeführt werden? Ich denke, die Reihenfolge, in der die Dateien verarbeitet werden, könnte wichtig sein. Um Ihre Frage zu beantworten, scheint es jedoch keine Möglichkeit zu geben, dieses Verhalten abzuschalten. – jgillich

Antwort

0

Grunt cssmin hat eine Abhängigkeit von node.js Modul clean-css. Ich würde empfehlen, clean-css API innerhalb Grunt mit den verfügbaren Optionen https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api zu verwenden.

Einer der verfügbaren Parameter ist;

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

Sie spielen mit dieser Option auf http://refresh-sf.com/. Wenn Sie auf den Tab 'clean-css' unterhalb des Textfelds gehen, können Sie advanced aktivieren/deaktivieren, damit es funktioniert.

Edit: Ausgestellt dies bei Grunzen-contrib-cssmin Repo als Thema https://github.com/gruntjs/grunt-contrib-cssmin/issues/263