【问题标题】:gulp uncss - ignore via regex won´t workgulp uncss - 通过正则表达式忽略将不起作用
【发布时间】:2017-09-07 11:58:22
【问题描述】:

我正在尝试为我的 gulp 工作流程添加 uncss。

要忽略一些通过 javascript 添加的类,例如,我用“ignore”声明这些类(在我的例子中,我试图从 jquery 插件 magnific-popup 中取消 css)。

我的工作流程如下所示,并使用正则表达式匹配所有 magnific-popup css:

gulp.task("uncsstask", () => {
gulp.src('original-mfp.css')    
.pipe(uncss({
    html:
    [
        'page.html',
    ],
    ignore: [            
        /\.mfp-*.*/g,
    ]
}))
.pipe(gulp.dest('new'));
});

发生了什么是类

.mfp-container

进入新的 css 文件,但是类

.mfp-content

没有。

我用各种正则表达式检查器检查了正则表达式语句。

【问题讨论】:

    标签: javascript css gulp uncss


    【解决方案1】:

    将“m”标志添加到您的正则表达式(否则它将在第一次匹配后停止):

        /\.mfp-*.*/gm,
    

    为什么第一个 * 在那里?您有时在“.mfp”之后有 0 个或多个破折号吗?

    [编辑]:因此,在更仔细地查看文档之后,似乎不需要正则表达式标志,并且 OP 表示已解决问题,并结合了我的其他建议,即正则表达式中包含不必要的 *。我已经编辑了我的答案,因此这些信息现在位于答案的正文中,而不仅仅是在 cmets 中。所以使用:

    /\.mfp-.*/
    

    【讨论】:

    • 实际上,查看规格我怀疑是否需要任何标志。如果你在他的正则表达式中没有标志的情况下尝试它会发生什么?如果它仍然不起作用,我需要你的 html 的示例 sn-p,它使用你想要忽略的两个选择器。
    • 你好 - 没有标志的正则表达式实际上是正确的。非常感谢!正确的表达式是/\.mfp-.*/
    • 我已经编辑了我的答案以将这些 cmets 合并到一个好的答案中。感谢您接受的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    相关资源
    最近更新 更多