2014-10-09 13 views
5

W mojej aplikacji Gruntfile używam zadania cssmin (grunt-contrib-cssmin). Coś jak:Unikaj zadania programu cssmin, aby usunąć zduplikowane wpisy.

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

Problemem jest: styles.css jest generowany z zadaniem concat że Łączy wiele plików .css. W niektórych plikach mam ten sam selektor css (przykład: .panel a) Tylko pierwszy selektor jest przechowywany w zadaniu cssmin, wszystkie inne są usuwane. Domyślam się, że to domyślne zachowanie zadania. Czy istnieje sposób na zachowanie zduplikowanych selektorów?

+2

Ale nie jest to, że punktu cssmin? Dlaczego chcesz je zatrzymać? – jgillich

+0

@jgillich, ponieważ zadanie konkatuje css niektórych dostawców i muszę nadpisać niektóre reguły/selektory. –

+0

Ale czy nie powinny one zastąpić istniejące reguły, gdy zostaną scalone w jednym selektorze? Domyślam się, że kolejność przetwarzania plików może być ważna; aby odpowiedzieć na twoje pytanie, ale wydaje się, że nie ma sposobu, aby wyłączyć to zachowanie. – jgillich

Odpowiedz

0

Grunt cssmin ma zależność od modułu node.js clean-css. Polecam użyć API clean-css w Grunt z dostępnymi opcjami https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api.

Jednym z dostępnych parametrów jest;

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

grać z tą opcją http://refresh-sf.com/. Jeśli przejdziesz do zakładki "clean-css" poniżej obszaru tekstowego, możesz włączyć/wyłączyć advanced, aby zobaczyć, jak działa.

Edit: Wydano na ten grunt-contrib-cssmin repo jako problem https://github.com/gruntjs/grunt-contrib-cssmin/issues/263