Я работаю с 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
Он правильно очищает второй, поскольку он не соответствует регулярному выражению для экстрактора.
Я подумал, обновив свою конфигурацию purgeCSS в конфигурации Nuxt до следующего:
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) || []
Чтобы увидеть, правильно ли он удаляет все (в качестве теста), но он по-прежнему сохраняет первый класс и очищает второй, даже если он не должен совпадать с каким-либо.
Это наводит меня на мысль, что я неправильно переопределяю экстрактор по умолчанию.
Что-то я здесь делаю не так?