2014-10-09 29 views
5

Gruntfile'ımda cssmin (grunt-contrib-cssmin) görevini kullanıyorum. Bir şey gibi:Yinelenen girdileri kaldırmak için Grunt cssmin görevini engelle

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

sorundur: styles.css .css dosyaları çok birleştirir bir concat görevle oluşturulur. Bazı dosyalarda aynı css selektörüne sahibim (örnek: .panel a) Sadece ilk bir seçici cssmin görevini tutuyor, diğerleri kaldırılıyor. Sanırım bu görev için varsayılan bir davranış. Yinelenen seçicileri tutmanın bir yolu var mı?

+2

olarak hırıltı-contrib-cssmin repo bu Çıkarılmış Ama cssmin noktasında değil mi? Neden onları tutmak istiyorsun? – jgillich

+0

@jgillich çünkü görev bazı satıcıların css'sine uyuyor ve bazı kuralları/seçicileri geçersiz kılmam gerekiyor. –

+0

Ancak bunlar, tek seçiciyle birleştirildiklerinde mevcut kuralları geçersiz kılmamalıdırlar mı? Dosyaların işleniş sırasının önemli olabileceğini düşünüyorum; Ancak sorunuza cevap vermek için bu davranışı kapatmak için herhangi bir yol görünmemektedir. – jgillich

cevap

0

Grunt cssmin'in node.js modülü clean-css üzerinde bir bağımlılığı vardır. https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api kullanılabilir seçenekleri ile Grunt içinde clean-css API kullanmak için tavsiye ederim.

Kullanılabilecek parametrelerden biri;

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

Sen http://refresh-sf.com/ bu seçenekle oynarlar. Textarea'nın altındaki 'clean-css' sekmesine giderseniz, çalışmakta olduğunu görmek için advanced'u etkinleştirebilir/devre dışı bırakabilirsiniz.

Düzenleme: bir sorun https://github.com/gruntjs/grunt-contrib-cssmin/issues/263