0

我正在使用 Nuxt.js 并使用 Nuxt-PurgeCSS:https ://github.com/Developmint/nuxt-purgecss

这个项目使用我自己的 CSS,类似于 Tailwind(基于实用程序),我有一些使用 @ 符号的类。

这个包的默认正则表达式是:

return content.match(/[A-z0-9-:\\/]+/g)

有以下课程:

u:w-1/12 u@sm:w-12/12

它正确清除了第二个,因为它与提取器的正则表达式不匹配。

我想通过将 Nuxt 配置中的 purgeCSS 配置更新为以下内容:

purgeCSS: {
    extractors: [
        {
            extractor: class {
                static extract(content) {
                    return content.match(/[@A-Za-z0-9-:/]+/g) || []
                }
            },
            extensions: ['html', 'vue', 'js']
         }
    ]
}

这个新的提取器包含 @ 符号,但仍使用 @ 符号清除类名。我尝试了以下正则表达式:

return content.match(/[A-Z]+/g) || []

看看它是否正确地剥离了所有东西(作为测试),但它仍然保留第一类并清除第二类,即使它不应该匹配任何东西。

这让我相信我没有正确地覆盖默认提取器。

我在这里做错什么了吗?

4

1 回答 1

1

您可以为每个扩展使用一个提取器。
然后,您必须覆盖默认值。

purgeCSS: {
    extractors: () => [
        {
            extractor: class {
                static extract(content) {
                    return (content.match(/[A-z0-9-:\\/]+/g || []).concat(content.match(/[@A-Za-z0-9-:/]+/g) || [])
                }
            },
            extensions: ['html', 'vue', 'js']
         }
    ]
}

https://github.com/Developmint/nuxt-purgecss/issues/52

于 2019-08-09T14:19:32.173 回答