在gulp-uncss中针对化合物选择器?

时间:2015-03-22 20:04:03

标签: css gulp uncss

我是gulp和uncss的新手,我不确定我的逻辑是否有缺陷,或者我的需要是不可能的。

我喜欢用unss来忽略一些以某个字符串为前缀的CSS规则,但是在声明中链接了许多复合选择器。

我知道我们可以在ignore语句中使用正则表达式,并且我使用正则表达式希望忽略以我的前缀开头的所有规则。但我不确定忽略中的正则表达式是否只涵盖选择器中的一个类,或整个规则。

e.g。我希望gulp-uncss忽略所有以.foo

为前缀的CSS规则
.foo .bar {...}
.foo-baz {...}
.foo-ballz .bazzie:hover {...}

我的gulp-uncss规则(似乎没有按预期工作)

.pipe(uncss({
     html: ['index.html'],
     ignore: ['/^.foo/']
}))
事情编译好了,但我似乎失去了一些(但不是全部)所需的CSS。我可能错过了什么?谢谢!

2 个答案:

答案 0 :(得分:4)

我想我解决了自己的问题。在我们的忽略语句中,我发现你不必用正则表达式包装正则表达式。

因此:

.pipe(uncss({
     html: ['index.html'],
     ignore: [/^\.foo/]
}))

似乎对我有用了!

答案 1 :(得分:1)

或者,您可以在选择器之前使用忽略注释:

/* uncss:ignore */

但是,我更喜欢你的回答。我正在努力解决同样的问题,并在这里遇到了你的问题。