【问题标题】:Avoid Grunt cssmin task to remove duplicate entries避免 Grunt cssmin 任务以删除重复条目
【发布时间】:2014-12-04 11:08:52
【问题描述】:

在我的 Gruntfile 中,我正在使用 cssmin (grunt-contrib-cssmin) 任务。比如:

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

问题是:styles.css 是通过连接大量 .css 文件的 concat 任务生成的。在某些文件中,我有相同的 css 选择器(例如:.panel a) 只有第一个选择器保留在 cssmin 任务中,所有其他选择器都被删除。我想这是任务的默认行为。有没有办法保留重复的选择器?

【问题讨论】:

  • 但这不是 cssmin 的重点吗?为什么要保留它们?
  • @jgillich 因为任务连接了一些供应商的 css,我必须覆盖一些规则/选择器。
  • 但是当它们合并到一个选择器中时,它们不应该覆盖现有规则吗?我想处理文件的顺序可能很重要。回答您的问题,但似乎没有任何方法可以关闭此行为。
  • @jgillich 我猜它们合并了,但我必须覆盖相同的属性(即:首先是宽度:50px,然后是宽度:80px)。并且更改顺序可能会起作用。谢谢!

标签: javascript css gruntjs grunt-contrib-cssmin


【解决方案1】:

Grunt cssmin 依赖于 node.js 模块 clean-css。我建议在 Grunt 中使用 clean-css API 和可用的选项 https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api

可用的参数之一是;

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

您在http://refresh-sf.com/ 上使用此选项。如果您转到 textarea 下方的选项卡“clean-css”,您可以启用/禁用advanced 以查看它的工作原理。

编辑:在 grunt-contrib-cssmin 回购中作为问题 https://github.com/gruntjs/grunt-contrib-cssmin/issues/263 发布此问题@

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多