В случае невозможности выяснить, как сохранить комментарии в компонентах Vue во время производственной сборки, я нашел обходной путь, заключающийся в том, чтобы просто внести в белый список все классы поставщиков, которые я хотел бы сохранить в моем файле postcss.config.js:
const isHotReloaded = process.argv.includes('serve')
class TailwindVueExtractor {
static extract (content) {
const contentWithoutStyleBlocks = content.replace(/<style[^]+?<\/style>/gi, '')
return contentWithoutStyleBlocks.match(/[A-Za-z0-9-_:/]+/g) || []
}
}
const extensionsUsingCSS = [ 'vue', 'html' ]
const extensionsOfCSS = [ 'less', 'pcss', 'postcss', 'sass', 'scss', 'styl' ]
module.exports = {
plugins: [
require('postcss-preset-env')({ stage: 2 }),
require('tailwindcss')('./tailwind.config.js'),
!isHotReloaded && require('@fullhuman/postcss-purgecss')({
content: [ `./@(public|src)/**/*.@(${extensionsUsingCSS.join('|')})` ],
css: [ `./src/**/*.@(${extensionsOfCSS.join('|')})` ],
whitelistPatterns: [
/^vue-form-wizard/
],
whitelistPatternsChildren: [
/vue-form-wizard$/
],
extractors: [
{
extractor: TailwindVueExtractor,
extensions: extensionsUsingCSS
}
]
}),
require('autoprefixer')()
]
}
Ключи белый список и белый списокPatternsChildren являются ключом.Для получения дополнительной информации о том, что каждый из них выполняет, вы можете проверить документы purgecss здесь
Не совсем то, что я пытался выполнить, но это работает ...